boot(); $kernel->preHandle($request); // Create test values. $arr = array_fill(0,20, 'lorem ipsum' . mt_rand(0, 99999999999)); $twig_render_array = ['#theme' => 'inline_list', '#items' => $arr]; $markup_render_array = ['#separator' => ', ', '#markup' => $arr]; // Do an unrelated render to set up stuff... $renderer = \Drupal::service('renderer'); $markup = ['#markup' => 'ignore']; $renderer->renderPlain($markup); $tests = 10; for ($i=0; $i<$tests; $i++) { $arr[$i] = array_fill(0, 20, 'lorem ipsum' . mt_rand(0, 99999999999)); } // Test twig template. $time_start = microtime(true); for ($i=0; $i<$tests; $i++) { $twig_render_array = ['#theme' => 'inline_list', '#items' => $arr[$i]]; $renderer->renderPlain($twig_render_array); } $time_end = microtime(true); $time = $time_end - $time_start; echo "Twig render array in $time seconds\n"; // Test #markup. $time_start = microtime(true); for ($i=0; $i<$tests; $i++) { $markup_render_array = ['#separator' => ', ', '#markup' => $arr[$i], '#safe_strategy' => \Drupal\Core\Render\Element\Markup::SAFE_STRATEGY_ESCAPE]; $renderer->renderPlain($markup_render_array); } $time_end = microtime(true); $time = $time_end - $time_start; echo "#markup render array in $time seconds\n";