Comments (7)
I re-ran the benchmarks on my main box (Core i7-3770), here is a chart of the results:
This was with a constrained pool of 50 connections, like the chart on the main page. Not a bad showing for tomcat, actually.
from hikaricp.
I'll try to get around it to. You could also fork the code and add the tomcat datasource to the benchmark1.java
class. It should be pretty simple to see what needs to be done if you glance at the code.
from hikaricp.
Ok, I ran the benchmark with the tomcat-jdbc library you referred to. The tests were run on my laptop, a circa 2010 MacBook Pro with Core i5 processor (not my usual benchmarking machine):
Benchmarking Tomcat-JDBC - 400 threads, 50 connections
MixedBench
Warming up JIT
max=14059ms, avg=13602ms, med=13919ms
max=7032ms, avg=6482ms, med=6726ms
MixedBench Final Timing Runs
max=4511ms, avg=2921ms, med=4460ms
max=4519ms, avg=3284ms, med=4386ms
max=4597ms, avg=2769ms, med=4543ms
max=4525ms, avg=3544ms, med=4467ms
BoneBench
Warming up JIT
max=224421000ns, avg=98337944ns, med=199176000ns
BoneBench Final Timing Run
max=211407000ns, avg=137618701ns, med=193142000ns
max=172927000ns, avg=73365926ns, med=154840000ns
max=209094000ns, avg=95888768ns, med=191634000ns
max=192283000ns, avg=85874672ns, med=173455000ns
Here is the HikariCP bench result on the same machine:
Benchmarking HikariCP - 400 threads, 50 connections
MixedBench
Warming up JIT
max=8969ms, avg=8773ms, med=8866ms
max=6288ms, avg=5903ms, med=6007ms
MixedBench Final Timing Runs
max=2869ms, avg=1407ms, med=2780ms
max=1191ms, avg=92ms, med=434ms
max=609ms, avg=38ms, med=69ms
max=220ms, avg=16ms, med=50ms
BoneBench
Warming up JIT
max=2605000ns, avg=120644ns, med=65000ns
BoneBench Final Timing Run
max=123000ns, avg=77989ns, med=40000ns
max=2023000ns, avg=38441ns, med=34000ns
max=1667000ns, avg=41007ns, med=35000ns
max=1373000ns, avg=47654ns, med=36000ns
Summary
Best tomcat-jdbc time from run:
max=4519ms, avg=3284ms, med=4386ms
Best HikariCP time from run:
max=220ms, avg=16ms, med=50ms
You can see that HikariCP's trend was getting faster, probably there is some small amount of code remaining to be compiled by the JIT, in spite of the warmup run. Tomcat-jdbc does not seem to be trending in that direction, but seem to be stabilized around 4300-4400ms.
from hikaricp.
Nice, thanks for the rapid feedback ;)
Interesting numbers !
I think this graphic is really nice and should be shown on the homepage, as it shows more how theses pools are trending in face of HikariCP.
from hikaricp.
I'll try to publish it to the homepage in a day or two. I still need to add footnotes and run the same tests for Unconstrained Pools.
from hikaricp.
OK, Cool ;)
Again thanks for feedback.
from hikaricp.
very nice
from hikaricp.
Related Issues (20)
- Available connections in HikariPool occassionaly drop to zero HOT 2
- java.sql.SQLFeatureNotSupportedException: Feature not implemented: No details. HOT 1
- Question : IdleTimeOut Best Practice
- Developer experience: allow configuring HikariCP with `java.time.Duration` instead of millisecond / second parameters
- The HikariDataSource.getConnection() method does not implement a fair borrow mechanism HOT 1
- question: how does `prepStmtCacheSize` property work
- A question of source code
- [Question] HikariCP tag metrics
- HikariCP Warning: "Driver does not support get/set network timeout for connections" HOT 1
- Another instance of dead pool, no new connection can be created
- `HikariProxyConnection` directly calls `delegate.getTransactionIsolation()`, causing a network call every time. HOT 1
- Why do Session Settings get reset on a connection?
- Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
- connectionTimeout property is not propagated to Postgres driver creating the connection
- Max-life-time expire cause application latency HOT 1
- Postgres Client thread getting stuck HOT 1
- dynamic pool growth
- From c3p0 to HikariCP: connection error
- DB connections in the pool are getting closed with `08S01` error on high load HOT 1
- [Question] recovery after Oracle database outage - properties to use?
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 hikaricp.