Ron Grabowski wrote:
Jaroslaw Kowalski has written benchmarking code for NLog:
http://svn.nlog-project.org/repos/nlog/trunk/NLog/tests/NLog.Benchmark/
hy don't you just cache the isXXXXEnabled flags and just return the
precalculated values in IsXXXEnabled? This would effectively turn most
non-logging tests into single boolean comparison as it is done in NLog.
It would probably require some mechanism to flush the cache, but should
be doable.
BTW. Here are my results of running NLog.Benchmark. The results are in
nanoseconds. I'll write some more explanation, and the reason for NLog
being so fast tomorrow.
<results>
<framework name="Log4Net">
<test name="Guarded no logging" min="41" max="42" avg="42" />
<test name="Unguarded no logging" min="46" max="47" avg="47" />
<test name="Unguarded no logging with formatting 1" min="92"
max="109" avg="100" />
<test name="Unguarded no logging with formatting 2" min="127"
max="130" avg="129" />
<test name="Unguarded no logging with formatting 3" min="132"
max="144" avg="139" />
<test name="Null target without rendering" min="1532" max="1592"
avg="1559" />
<test name="Null target without rendering 1" min="2264" max="2361"
avg="2321" />
<test name="Null target without rendering 3" min="2421" max="2478"
avg="2455" />
<test name="Null target with rendering" min="3142" max="3198"
avg="3174" />
<test name="Null target with rendering 1" min="3988" max="4157"
avg="4029" />
<test name="Null target with rendering 3" min="4182" max="4265"
avg="4226" />
<test name="Simple file" min="12968" max="14935" avg="13490" />
</framework>
<framework name="NLog">
<test name="Guarded no logging" min="3" max="3" avg="3" />
<test name="Unguarded no logging" min="6" max="6" avg="6" />
<test name="Unguarded no logging with formatting 1" min="8" max="9"
avg="8" />
<test name="Unguarded no logging with formatting 2" min="47"
max="49" avg="48" />
<test name="Unguarded no logging with formatting 3" min="49"
max="89" avg="57" />
<test name="Null target without rendering" min="185" max="215"
avg="201" />
<test name="Null target without rendering 1" min="342" max="432"
avg="386" />
<test name="Null target without rendering 3" min="565" max="663"
avg="602" />
<test name="Null target with rendering" min="2813" max="3001"
avg="2890" />
<test name="Null target with rendering 1" min="3140" max="3445"
avg="3229" />
<test name="Null target with rendering 3" min="3430" max="3648"
avg="3530" />
<test name="Simple file" min="4783" max="6356" avg="5231" />
</framework>
</results>
Jarek