[squeak-dev] Re: Ideas about sets and dictionaries
Igor Stasenko
siguctua at gmail.com
Thu Nov 12 12:55:40 UTC 2009
2009/11/12 Levente Uzonyi <leves at elte.hu>:
> On Thu, 12 Nov 2009, Igor Stasenko wrote:
>
>>> a) Run benchmarks (tiny and macroBenchmarks). I expect no difference but
>>> I
>>> only believe that after having run the benchmarks.
>>>
>> before:
>> 1 tinyBenchmarks
>> '436115843 bytecodes/sec; 12718765 sends/sec'
>> '473635522 bytecodes/sec; 12718765 sends/sec'
>> '473635522 bytecodes/sec; 12727537 sends/sec'
>>
>> after:
>> 1 tinyBenchmarks
>> '472324723 bytecodes/sec; 12657701 sends/sec'
>> '472324723 bytecodes/sec; 12683800 sends/sec'
>> '472760849 bytecodes/sec; 12969029 sends/sec'
>
> Well, I doubt Andreas ment to use Integer >> #tinyBenchmarks, because it
> doesn't use sets. I think he ment microbenchmarks like this one:
> http://leves.web.elte.hu/collections/Set%20class-microBenchmark.st
>
> I just ran them with the current implementation, 2a and 3c, the results are
> here: http://leves.web.elte.hu/collections/SetBenchmarkResults.txt
> The values are microseconds/element in the table (smaller valuesa are
> better).
>
> I summed up the rows and created a table (smaller numbers are better):
> trunk 2a 3c
> add: (included) 2,594 2,599 2,443
> add: (not included) 9,370 9,957 9,441
> includes: (included) 2,869 2,961 2,822
> includes: (not included) 3,685 3,717 3,671
> like: (included) 2,446 2,486 2,508
> like: (not included) 3,268 3,258 3,310
> rehash 2,924 2,841 2,238
> remove:ifAbsent: (included) 7,190 7,228 7,240
> remove:ifAbsent: (not included) 3,966 3,980 3,856
>
> I don't see any real differences. Some values are pretty strange (like
> rehash at 3c, I expected it to be slower than trunk). It may be because of
> noise, even though I tried to avoid noise as much as possible.
>
yes, it should show some difference because in things like
(Set new: 10000) or #rehash
you need to fill all array slots with own empty slot marker instead of nil.
But if its so unsignificant ... then why really care about macro benchs.
> Since these benchmarks show no significant differences, I doubt that
> macrobenchmarks would show any differences for these implementations.
>
> Levente
>
>
--
Best regards,
Igor Stasenko AKA sig.
More information about the Squeak-dev
mailing list
|