之前老项目使用的是BoneCP数据库连接池,性能不是很好,现在使用一下HikariCP进行对比一下;
下图的是BoneCP堆内存使用量,主要集中到了Eden(伊甸园)的使用量。
下面是HikariCP的java部分代码:
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.addDataSourceProperty("cachePrepStmts", "true");
hikariConfig.addDataSourceProperty("username", "root");
hikariConfig.addDataSourceProperty("password", "123456");
hikariConfig.addDataSourceProperty("jdbcUrl","jdbc:mysql://127.0.0.1:3306/my_db?
useUnicode=true&characterEncoding=utf-8");
hikariConfig.addDataSourceProperty("connectionTimeout", "30000");
hikariConfig.addDataSourceProperty("idleTimeout", "600000");
// maximumPoolSize=((core_count * 2)+ effective_spindle_count)
// core_count : 内核数
// effective_spindle_count: 磁盘列阵中的硬盘数
hikariConfig.addDataSourceProperty("maximumPoolSize", "10");
hikariConfig.addDataSourceProperty("prepStmtCacheSize", "250");
hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
HikariDataSource connPool = new HikariDataSource(hikariConfig);
堆内存使用量如下图所示:
hikaricp jar包下载地址为:https://search.maven.org/search?q=com.zaxxer.hikaricp