Size: a a a

2020 April 28

AP

Andrey Postnikov in Drupal RU
Comrade Gagarin
Меня больше волнует вопрос производительности. Замерил тут, вот такой код первый раз выполняется ~25ms 😕  
$build = [
 '#type' => 'inline_template',
 '#template' => "{{ 'test'|lower }}",
];
render($build);
А если без lower?
источник

C

Comrade Gagarin in Drupal RU
так же
источник

ИЛ

Иван Лещёв in Drupal RU
оно хоть в кеш падает?
источник

ИЛ

Иван Лещёв in Drupal RU
или каждый раз парсинг строки запускается?
источник

AP

Andrey Postnikov in Drupal RU
Как и любой твиг - нужно компилять
источник

C

Comrade Gagarin in Drupal RU
самому итересно
источник

C

Comrade Gagarin in Drupal RU
ну судя по цифрам где то в apc хранит скомплированный шаблон
источник

AP

Andrey Postnikov in Drupal RU
Comrade Gagarin
ну судя по цифрам где то в apc хранит скомплированный шаблон
Это исключено, скорее какой-то класс подгружает
источник

ИЛ

Иван Лещёв in Drupal RU
Comrade Gagarin
ну судя по цифрам где то в apc хранит скомплированный шаблон
у твига файловый кеш
источник

AP

Andrey Postnikov in Drupal RU
И 25мс скорее из-за того, что это первый рендер на странице и там вся темизация инициализируется
источник

ИЛ

Иван Лещёв in Drupal RU
ну второй раз запусти
источник

ИЛ

Иван Лещёв in Drupal RU
я для семёрки давным давно делал для панелей твиг пейн
источник

C

Comrade Gagarin in Drupal RU
Andrey Postnikov
И 25мс скорее из-за того, что это первый рендер на странице и там вся темизация инициализируется
нет, только этот кусок кода тестю
источник

ИЛ

Иван Лещёв in Drupal RU
вручную указывал, куда кешить
источник

AP

Andrey Postnikov in Drupal RU
Comrade Gagarin
нет, только этот кусок кода тестю
Оберни его профайлером и посмотри
источник

C

Comrade Gagarin in Drupal RU
Да, в файловый кэш падает по неймспейску _string_template_
источник

C

Comrade Gagarin in Drupal RU
Andrey Postnikov
Оберни его профайлером и посмотри
так и смотрю
источник

C

Comrade Gagarin in Drupal RU
use Drupal\Component\Utility\Timer;
$build = [
 '#type' => 'inline_template',
 '#template' => "{{ 'test'|lower }}",
];
//$build = ['#markup' => 'test'];
$renderer = \Drupal::service('renderer');
Timer::start('test');
echo $renderer->render($build);
debug(Timer::read('test') . ' ms');
источник

AP

Andrey Postnikov in Drupal RU
Comrade Gagarin
use Drupal\Component\Utility\Timer;
$build = [
 '#type' => 'inline_template',
 '#template' => "{{ 'test'|lower }}",
];
//$build = ['#markup' => 'test'];
$renderer = \Drupal::service('renderer');
Timer::start('test');
echo $renderer->render($build);
debug(Timer::read('test') . ' ms');
https://symfonycasts.com/screencast/blackfire/manual-instrumentation там и посмотреть можно нормально
источник

C

Comrade Gagarin in Drupal RU
ну окей, 25 это с компиляцией, но 6 ms уже с скомпилированным шаблоном, тоже не густо
источник