Comments (7)
whoops - apparently this doesn't take wiki formatting.
Original comment by [email protected]
on 29 Jun 2010 at 12:54
from caliper.
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.
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.
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.
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.
Original comment by [email protected]
on 16 Jul 2010 at 7:48
- Added labels: Milestone-Post-1.0
from caliper.
Original comment by [email protected]
on 6 Mar 2011 at 3:42
- Changed state: WontFix
from caliper.
Related Issues (20)
- Build is falling : Dagger and dagger-compiler jar is not being downloaded HOT 3
- frequent releases to maven repo (at least snapshot) HOT 8
- failing tests (f8dcb9a794b0cee6f9408d1b692572dbcd03788c) HOT 3
- scripts/caliper broken
- StreamServiceTest is flaky
- A simple example of how to use HOT 2
- Caliper with HttpServletRequest
- Missing pom.xml from recent commit
- Results should not be uploaded to the web by default HOT 1
- @Benchmark annotation
- -XX:CICompilerCount=2 vmOption does not apply
- microbenchmarks link in the home page of caliper wiki is not right HOT 1
- Fix Caliper tests under Java 10+11 HOT 3
- Unreleased Resource: Streams HOT 1
- Check for problems with ByteBuffer covariant return types when building with JDK 9+ HOT 2
- Maven release very old (2015)
- There is a vulnerability in OkHttp 2.5.0,upgrade recommended
- There is a vulnerability in Guava: Google Core Libraries for Java 28.1-jre,upgrade recommended
- Say something about (a) JMH and (b) the Jetpack Benchmark library HOT 7
- [Docs] Possible outdated documentation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from caliper.