mini benchmark vtim formatting

Nils Goroll slink at schokola.de
Mon Oct 8 08:41:07 UTC 2018


> 	printf("%ju.%06ju",
> 		(uint64_t)floor(foo),
> 		(uint64_t)floor((foo*1e6)) % 1000000UL);

nice trick. On Linux, this gets us down to the same order of magnitude as a
%lu.%06lu with uint64_t

On SmartOS the gain is not that significant, but we knew this before from the
uint64 test

So now the question is how this looks for other platforms. @All, Please send
your results!

	-

Linux 64bit:

printf %.6f: 0.051814s / 100000 = 518.138460ns - tst val 4600000.000000 1407.275722
printf %ju.%06ju: 0.008429s / 100000 = 84.292610ns - tst val 4600000.000000
1407.327545

printf %.6f: 0.044428s / 100000 = 444.276420ns - tst val 4600000.000000 1407.341059
printf %ju.%06ju: 0.008945s / 100000 = 89.451130ns - tst val 4600000.000000
1407.385495

printf %.6f: 0.046260s / 100000 = 462.603330ns - tst val 4600000.000000 1407.399393
printf %ju.%06ju: 0.008586s / 100000 = 85.857160ns - tst val 4600000.000000
1407.445667

printf %.6f: 0.046373s / 100000 = 463.734350ns - tst val 4600000.000000 1407.459268
printf %ju.%06ju: 0.008428s / 100000 = 84.282410ns - tst val 4600000.000000
1407.505651

printf %.6f: 0.046515s / 100000 = 465.154660ns - tst val 4600000.000000 1407.519289
printf %ju.%06ju: 0.008381s / 100000 = 83.813980ns - tst val 4600000.000000
1407.565813

	-

SmartOS 64bit:

printf %.6f: 0.054789s / 100000 = 547.888801ns - tst val 5400000.000000
3925617.429178
printf %ju.%06ju: 0.038115s / 100000 = 381.154837ns - tst val 5400000.000000
3925617.484005

printf %.6f: 0.048295s / 100000 = 482.946290ns - tst val 5400000.000000
3925617.541356
printf %ju.%06ju: 0.035813s / 100000 = 358.133619ns - tst val 5400000.000000
3925617.589702

printf %.6f: 0.050126s / 100000 = 501.261158ns - tst val 5400000.000000
3925617.644167
printf %ju.%06ju: 0.037617s / 100000 = 376.169202ns - tst val 5400000.000000
3925617.694339

printf %.6f: 0.051205s / 100000 = 512.047550ns - tst val 5400000.000000
3925617.750960
printf %ju.%06ju: 0.037772s / 100000 = 377.719700ns - tst val 5400000.000000
3925617.802201

printf %.6f: 0.051990s / 100000 = 519.904410ns - tst val 5400000.000000
3925617.859368
printf %ju.%06ju: 0.038027s / 100000 = 380.265811ns - tst val 5400000.000000
3925617.911402



More information about the varnish-dev mailing list