Scriban с или без Renamer использует отражение для получения общедоступных свойств и методов.
Renamer - небольшой шаг в его обработке.
Посмотрите на Renamer в Исходный код .
Я сделал тест, используя смарт- BenchmarkDotNet
для следующего шаблона
<ul id='products'>
{% for product in products %}
<li>
product.name: <h2>{{ product.name }}</h2>
product.price: Only {{ product.price }}
product.description: {{ product.description | truncate: 15 }}
</li>
{% endfor %}
</ul>
Размер данных:List<Product> Products
равно 500
Результат теста:
Method | Mean | Error | StdDev | Ratio |
-------------------------- |---------:|----------:|----------:|------:|
'Scriban with Renamer' | 3.125 ms | 0.0617 ms | 0.0711 ms | 1.00 |
| | | | |
'Scriban without Renamer' | 3.070 ms | 0.0388 ms | 0.0363 ms | 1.00 |
// * Hints *
Outliers
TemplateManager.'Scriban with Renamer': Clr -> 1 outlier was removed
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
1 ms : 1 Millisecond (0.001 sec)
Как вы видите, разница (в случае Renamer) составляет примерно: 0,055 мс
Разницы приблизительно нет
Вывод: Не действует в случае Renamer
Примечание: Цифры в этом тесте могут отличаться на других машинах в зависимости от процессора / памяти /... и т. д., но вывод тот же.