Nathan,
You mentioned that it was clojure startup time that you want to improve. Is it a general "all clojure apps" issue or "our clojure apps?" What are typical times for the entire startup that you observe? What do the clojure apps actually do? Some points: *Precision/noise:* As Kirk described, calling System.nanoTime() costs about 28 nanos on a one year old Haswell CPU. It just doesn't work to use it to measure operations that themselves take tens or hundreds of nanos. *Skewing * Martin Thompson alluded to how measurement can skew behavior of the underlying system. JMH can’t avoid the Heisenberg effect. Perf-map reduces Heisenberg cost because you are tracing from outside the process (but still on the host). Taking measurements out-of-band is the only way I know to avoid Heisenberg *Host issues* When you said "spin up a linux box" did you mean a physical box, not a VM or container? I've had a bunch of consulting projects that were different variations on “performance issues that only occur in environment X or on hardware Y”. It common for people to assume “performance is relative. If this is a hotspot here it will be a hotspot here” All of the points described here require that you have root access to physical hosts that are representative of your target hardware. In larger (and some small) shops this isn’t always easy to get. On Saturday, September 23, 2017 at 10:51:52 AM UTC-4, Nathan Fisher wrote: > > Thank-you I ran across an article by Brandon Gregg and was just starting > to dig into honest-profiler. Looks like I'll spin up a linux box instead to > use perf-map-agent. > > > http://www.brendangregg.com/blog/2014-06-09/java-cpu-sampling-using-hprof.html > > > On Sat, 23 Sep 2017 at 14:58 Martin Thompson <[email protected] > <javascript:>> wrote: > >> This approach to measurement is likely to skew the results. I'd start >> with perf record via perf-map-agent and then use flame graphs. >> >> >> http://psy-lob-saw.blogspot.co.uk/2017/02/flamegraphs-intro-fire-for-everyone.html >> >> -- >> You received this message because you are subscribed to the Google Groups >> "mechanical-sympathy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- > - sent from my mobile > -- You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
