Skip to content

Conversation

@schlosna
Copy link
Contributor

@schlosna schlosna commented Oct 4, 2018

Simplified version of #100 just for comparison.

@schlosna
Copy link
Contributor Author

schlosna commented Oct 4, 2018

There are significant performance slow downs using the new com.palantir.tracing.Tracer implementation as evidenced by jmh:

Before, using com.palantir.remoting3:tracing on develop:

Benchmark                                          Mode  Cnt    Score    Error  Units
ProxyBenchmark.instrumentedWithEverything          avgt    5  882.844 ± 52.446  ns/op
ProxyBenchmark.instrumentedWithTracing             avgt    5  450.734 ± 74.964  ns/op
ProxyBenchmark.instrumentedWithMetrics             avgt    5  352.870 ±  5.791  ns/op
ProxyBenchmark.instrumentedWithPerformanceLogging  avgt    5   17.203 ±  0.932  ns/op
ProxyBenchmark.raw                                 avgt    5    3.001 ±  0.232  ns/op

After, using com.palantir.tracing.Tracer on ds/java-tracing:

Benchmark                                          Mode  Cnt     Score    Error  Units
ProxyBenchmark.instrumentedWithEverything          avgt    5  1447.724 ± 26.477  ns/op
ProxyBenchmark.instrumentedWithTracing             avgt    5   630.983 ± 18.414  ns/op
ProxyBenchmark.instrumentedWithMetrics             avgt    5   355.538 ±  9.785  ns/op
ProxyBenchmark.instrumentedWithPerformanceLogging  avgt    5    17.266 ±  0.511  ns/op
ProxyBenchmark.raw                                 avgt    5     2.912 ±  0.061  ns/op

@iamdanfox
Copy link
Contributor

@schlosna this is pretty surprising to me - I thought this might have been caused by some piece of the remoting3 -> tracing delegation adding extra overhead, but I ran dependencyInsight and it seems there are zero remoting3 deps on this branch at all?

./gradlew :tritium-tracing:dependencyInsight --configuration runtime --dependency 'remoting3'
Parallel execution is an incubating feature.

> Task :tritium-tracing:dependencyInsight
No dependencies matching given input were found in configuration ':tritium-tracing:runtime'

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.10.2/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed

Other than that, the palantir/tracing-java should be an exactly faithful copy & paste of the old com.palantir.remoting3:tracing classes - the repo only has 10 commits and I don't think anything material has changed: https://github.com/palantir/tracing-java/commits/develop.

Does that benchmark give the same results reliably?

@schlosna
Copy link
Contributor Author

schlosna commented Oct 4, 2018

@iamdanfox yes, that benchmark has been reliable on my machine, feel free to checkout that branch and run ./gradlew jmh

@schlosna
Copy link
Contributor Author

Closing as #100 merged, will address any potential bottlenecks later

@schlosna schlosna closed this Oct 17, 2018
@schlosna schlosna deleted the ds/java-tracing branch October 17, 2018 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants