Thanks Stefan for the follow up.

> On 05 Nov 2015, at 17:17, [email protected] wrote:
> 
> Hi Jan,
> Hi Max:
> 
> I guess, the main issues is missing documentation…
> Even so, there are class comments…
> 
>> On 01 Nov 2015, at 23:45, Jan Vrany <[email protected]> wrote:
>> 
>> Hi Max,
>> 
>> I looked at some version of SMark years ago and never used 
>> it extensively, so I might be wrong, but: 
>> 
>> * SMark executor does some magic with numbers.
> 
> Nope. It does only do that if you ask for it. However, granted, that’s the 
> standard setting, because it is supposed to be used conveniently from within 
> the image.
> 
> The SMark design knows the concepts reporter (how and what data to report), 
> runner (how to execute benchmarks), suite (the benchmarks), timer (should be 
> named gauge or something, can be everything, doesn’t have to be time).
> 
> 
>> It tries to 
>>  calculate a number of iterations to run in order to get 
>>  "statistically meaningful results". Maybe it's me, but
>>  I could not fully understand what it does and why it does it
>>  so. 
>>  CalipeL does no magic - it gives you raw numbers (no average, no
>> mean,
>>  rather a sequence of measurements).
> 
> See the ReBenchHarness, that’s giving you exactly that as alternative 
> standard setting.
> 
>> * SMark, IIRC, requires benchmarks to inherit from some base class
>>  (like SUnit).
> 
> Require is a strong word, as long as you implement the interface of 
> SMarkSuite you can inherit from where ever you want. It’s Smalltalk after all.
> 
> 
>> Also, not sure if SMark allows you to specify a warmup-
>>  phase (handy for example to measure peak performance when caches are
>>  filled or so). 
> 
> There is the concept of #setup/teardown methods.
> And, a runner can do what it wants/needs to reach warmup, too.
> For instance, the SMarkCogRunner will make sure that all code is compiled 
> before starting to measure.
> 
>>  CalipeL, OTOH, uses method annotations to describe the benchmark,
>>  so one can turn a regular SUnit test method into benchmark as simply
>>  as annotating it with <benchmark>.
> 
> Ok, that’s not possible.
> 
>> A warmup method and setup/teardown
>>  methods can be specified per-benchmark. 
> 
> We got that too.
> 
>> * SMark has no support for parametrization. 
> 
> Well, there is the #problemSize parameter, but that is indeed rather 
> simplistic.
> 
>> 
>> * SMark measures time only. 
> 
> Nope, the SMarkTimer can measure what they want. (and it even got a class 
> comment ;))
> 
>> * SMark had no support for “system" profilers and similar. 
> 
> That’s absent, true.
> 
>> * Finally, SMark spits out a report and that’s it. 
> 
> Well, reports and raw data. I use ReBench [1], and pipe the raw data directly 
> into my latex/knitr/R tool chain to generate graphs/numbers in my papers 
> (example sec. 4 [2], that’s based on a latex file with embedded R).
> 
> So, I’d say there are some interesting differences.
> But, much of the mentioned things seem just to be missing 
> ‘documentation’/communication ;)
> 
> Best regards
> Stefan
> 
> [1] https://github.com/smarr/ReBench
> [2] 
> http://stefan-marr.de/papers/oopsla-marr-ducasse-meta-tracing-vs-partial-evaluation/
> 
> 
> 
> 


Reply via email to