会员改名是否对业绩有影响

时间:2018-09-20 04:32:08

标签: scriban

使用成员重命名器会产生任何性能影响,因为它将通过反射来实现: https://github.com/lunet-io/scriban/blob/master/doc/runtime.md#member-renamer

1 个答案:

答案 0 :(得分:1)

带有或不带有Renamer的抄写员正在使用反射来获取公共属性和方法。

重命名器是其处理的一小步。

source code中查看重命名器。

我使用智能的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)

您所看到的差异(在重命名器的情况下)约为:0.055毫秒
几乎没有区别

结论: 重命名时无效

注意: 在基于CPU /内存/ ...等的其他计算机上,该基准测试中的数字可能有所不同,但结论是相同的。

相关问题