Git Product home page Git Product logo

Comments (7)

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024
whoops - apparently this doesn't take wiki formatting.

Original comment by [email protected] on 29 Jun 2010 at 12:54

from caliper.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024
Note that this could lead to negative measurements sometimes. But that's okay - 
it's just an indication that you should cut down on your overhead (like "new 
Foo()"), since it's dwarfing the actual test. It's a good sign that your 
benchmark is inaccurate.

Original comment by [email protected] on 29 Jun 2010 at 12:56

from caliper.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024
I believe that if there's to be any feature around the idea of a "baseline", it 
can probably be purely a feature of the visualization web app alone.  It's not 
necessary to know at measurement time which things are or are not "baselines".

I think this would simply be one special case of a general feature that works 
kinda like Google Finance stock charts -- you can tell it to view any stock's 
history in relative terms to some other stock.

Incidentally, in practice the "baseline" operations, which don't actually do 
anything, are very often at risk of getting aggressively optimized away by 
hotspot.

Original comment by [email protected] on 29 Jun 2010 at 2:03

from caliper.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024
yeah, when i first started using caliper i thought i might want something like 
this, but i never have. for stuff like an expensive "new Foo()", it turns out 
either:

1. you can't avoid creating one, so your callers can't either, so it's worth 
measuring. especially if you're likely to be moving costs around. (a baseline 
that didn't include this would encourage you to make construction more 
expensive.)

2. you can avoid creating one, in which case you lift the allocation up to 
wherever's appropriate.

3. the cost of a "new Foo()" is bad enough that it's interesting in its own 
right, and you effectively have your baselineFoo, only you call it timeNewFoo. 
(often alongside timeClonedFoo and/or timeGetFooInstance.)

i also worry that calling something a baseline encourages the fallacy of 
assuming you actually know something you don't: in reality, you don't tend to 
know how much of that cost is inherent, and how much is just that you need to 
optimize that code too.

plus, as kevinb says, if you really wanted, you could massage the data later. 
(at times i effectively do this by eye. i guess i just think the "baseline" is 
interesting enough to be worth a regular benchmark [or free enough that no-one 
cares].)

Original comment by [email protected] on 29 Jun 2010 at 3:18

from caliper.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024
Baseline is convenient pattern, but it doesn't need first-class support in the 
framework. If you're benchmarking what a JNI method call costs, it's useful to 
compare it to what a static method call costs. We should expose this in some 
sort of Caliper user's manual.

Original comment by limpbizkit on 29 Jun 2010 at 5:14

from caliper.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024

Original comment by [email protected] on 16 Jul 2010 at 7:48

  • Added labels: Milestone-Post-1.0

from caliper.

GoogleCodeExporter avatar GoogleCodeExporter commented on May 5, 2024

Original comment by [email protected] on 6 Mar 2011 at 3:42

  • Changed state: WontFix

from caliper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.