servicetalk icon indicating copy to clipboard operation
servicetalk copied to clipboard

Please consider implementing TechEmpower Benchmarks

Open guaporocco opened this issue 6 years ago • 3 comments

TechEmpower will do a good job showcasing the library's performance and overhead, compared to plain Netty.

I'd be happy to contribute them, but since I've only just began using the library, I suspect maintainer-created benchmarks will be better.

Cheers!

guaporocco avatar Nov 13 '19 01:11 guaporocco

Thanks @guaporocco for the suggestion.

We are definitely interested in knowing how ServiceTalk fares as compared to other libraries but the work is low on our priority list and realistically it is unlikely that we will get to it anytime soon.

If you would like to contribute the benchmarks to techempower, we can review them for you. That will help you and techempower team gain confidence in the benchmarks.

I am not sure whether you have seen but we have some documentation around how to approach performance tests in ServiceTalk. Here is the link to that doc for your reference:

https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html

NiteshKant avatar Nov 13 '19 03:11 NiteshKant

FYI

There is a PR for the benchmark (not by ServiceTalk team) here:

https://github.com/TechEmpower/FrameworkBenchmarks/pull/5270

NiteshKant avatar Nov 26 '19 23:11 NiteshKant

@arthur-techempower @nbrady-techempower

I would need some time to get legal approval to comment on your PR https://github.com/TechEmpower/FrameworkBenchmarks/pull/5270 but I would suggest going through this document on ServiceTalk performance:

https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html

Specifically, these sections:

  • Tuning options: https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html#tuning-options-and-recommendations
  • Disable default offloading: https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html#ExecutionStrategy
  • IO Thread pool sizing: https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html#io-thread-pool-sizing
  • Auto-payload draining: https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html#http-service-auto-payload-draining
  • Disable header validation: https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html#http-header-validation
  • Disable AsyncContext: https://apple.github.io/servicetalk/servicetalk/SNAPSHOT/performance.html#asynccontext

These features are enabled by default in ServiceTalk but are not ideal for specialized benchmarking as is the case with TechEmpower benchmarks.

NiteshKant avatar Nov 27 '19 17:11 NiteshKant