Será Membro Renamer tem qualquer impacto no desempenho

votos
0

Será que usando Membro Renamer tem qualquer impacto no desempenho, porque ele vai estar fazendo isso através de Reflexão: https://github.com/lunet-io/scriban/blob/master/doc/runtime.md#member-renamer

Publicado 20/09/2018 em 04:32
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Scriban com ou sem Renamer está usando a reflexão para obter as propriedades e métodos públicos.

Renomeador é pequeno passo no seu processamento.

Ter um olhar para o Renamer no código fonte .

Eu fiz um benchmark usando o inteligente BenchmarkDotNet

para o seguinte modelo

    <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>

O tamanho de dados: List<Product> Products é 500

O resultado de referência:

                        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)

Como você vê a diferença (em caso de Renamer) é sobre: 0,055 ms
Há aproximadamente nenhuma diferença

Conclusão: Nenhum efeito em caso de Renamer

Nota: Os números entre este benchmark pode ser diferente em outras máquinas baseadas em CPU / memória / ... etc, mas a conclusão é a mesma.

Respondeu 24/12/2018 em 17:47
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more