'field', '#weight' => 0, '#title' => 'Body', '#access' => TRUE, '#label_display' => 'hidden', '#view_mode' => 'teaser', '#language' => 'und', '#field_name' => 'body', '#field_type' => 'text_with_summary', '#field_translatable' => 1, '#object_type' => 'node', '#bundle' => 'article', '#object' => (object) array(), '#items' => array( 0 => array( 'value' => 'Body', 'summary' => '', 'format' => 1, 'safe_value' => '
Body
', 'safe_summary' => '', ), ), '#formatter' => 'text_summary_or_trimmed', 0 => array( '#markup' => 'Body
', ), ); // Initialize render system. $element = $element_base; drupal_render($element); for ($set=0; $set < SETS; $set++) { // With theme('field') $start = microtime(true); for ($i=0; $i < ITERATIONS; ++$i) { $element = $element_base; drupal_render($element); } $stop = microtime(true); if ($set == 0) { $output_header[] = "With theme('field')"; } $output_rows[$set][] = MILLION*($stop - $start)/ITERATIONS; // Without theme('field') $start = microtime(true); for ($i=0; $i < ITERATIONS; ++$i) { $element = $element_base; unset($element['#theme']); drupal_render($element); } $stop = microtime(true); if ($set == 0) { $output_header[] = "Without theme('field')"; } $output_rows[$set][] = MILLION*($stop - $start)/ITERATIONS; } $summary_row = array(); for ($col=0; $col < count($output_rows[0]); $col++) { $a = array(); foreach ($output_rows as $row) { $a[] = $row[$col]; } $avg = average($a); $stdev = stdev($a); $summary_row[$col] = $avg . ' +/- ' . $stdev; } $output_rows[] = $summary_row; print theme('table', array('header' => $output_header, 'rows' => $output_rows)); function average($a) { return array_sum($a) / count($a); } function stdev($a) { $avg = average($a); $variance = array(); foreach ($a as $val) { $variance[] = pow($val-$avg, 2); } return sqrt(average($variance)); }