-
Notifications
You must be signed in to change notification settings - Fork 391
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Slf dtrace take1 #174
Slf dtrace take1 #174
Conversation
…into slf-dtrace-take1
The best time for me on OS X 10.6.8, R14B04+Dtrace without cover was "timeit_best ON +init":
Same with cover (though I also don't see the difference your results showed when enabling cover, so maybe I have these confused):
In case this helps:
|
Ooops. Nope, ignore that. The |
The ordering of the runtime based on the env settings, etc. isn't ideal. Sorry! |
dtrace([Int0, Int1] ++ Ints ++ [S0, String1] ++ Strings) | ||
end. | ||
|
||
enabled() -> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
enabled/0
looks very similar to dtrace/1
. Is there any chance the redundancies could be merged for maintainability?
Other than maybe DRYing up |
Bryan, did you want to re-examine commit e70bc2c? It looks like my fear of extra overhead isn't justified, looking at the |
I see no appreciable change in the timings before an after e70bc2c … but |
Add basic infrastructure Erlang-triggerable probes to Riak Core apps.
In an ideal world, this module would live in a repo that would be
easily sharable across multiple Basho projects. The tricky bit for
this would be trying to make generic the
application:get_env(riak_core, dtrace_support)' call that's currently in the
riak_kv_dtrace:dtrace/1' function. But we'llwait for another day, I think.
The purpose of this module is to reduce the overhead of DTrace (and
SystemTap) probes when those probes are: 1. not supported by the VM,
or 2. disabled by application configuration. #1 is the bigger
problem: a single call to the code loader can take several
milliseconds. #2 is useful in the case that we want to try to reduce
the overhead of adding these probes even further by avoiding the NIF
call entirely.
SLF's MacBook Pro tests
without cover, with R14B04 + DTrace:
with cover, with R14B04 + DTrace: