前面已经做了c3p0和Druid的测试,下面进行Proxool的测试,其实我比较看好Proxool。
1.修改代码:
/** * Proxool实现 * @throws ProxoolException */ public void getUsrInfoWithProxool(ProxoolDataSource pds,Integer usrId) { String sql = "SELECT * FROM USER u WHERE u.USR_ID=" + usrId; try { // 获取连接 conn = pds.getConnection(); Statement st = conn.createStatement(); ResultSet result = st.executeQuery(sql); result.close(); st.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } }
2.修改main函数,还是进行10次查询,100次查询,1000次查询,每种查询重复100次的测试。
package com.test.jdbc.main; import java.io.IOException; import org.logicalcobwebs.proxool.ProxoolDataSource; import com.test.jdbc.dao.TestDAO; import com.test.jdbc.dao.impl.TestDAOImpl; public class Main3 { static String driver = "com.mysql.jdbc.Driver"; static String jdbcUrl = "jdbc:mysql://192.168.0.1:3306/test"; static String user = "dba"; static String passwd = "dba"; public static void main(String[] args) throws IOException { TestDAO testDAO = new TestDAOImpl(); ProxoolDataSource pds = getProxoolDataSource(); // 运行100次 for (int i = 0; i < 100; i++) { queryProxool(testDAO, pds, 100); } } /** * 获取Proxool数据源 * @return */ public static ProxoolDataSource getProxoolDataSource() { ProxoolDataSource pds = new ProxoolDataSource(); pds.setAlias("mysql"); pds.setUser(user); pds.setPassword(passwd); pds.setDriverUrl(jdbcUrl); pds.setDriver(driver); return pds; } public static void queryProxool(TestDAO testDAO, ProxoolDataSource pds, int count) { Integer usrId = 9900; long startMillis = System.currentTimeMillis(); // 测试c3p0查询 for (int i = 0; i < count; i++) { testDAO.getUsrInfoWithProxool(pds, usrId); } long endMillis = System.currentTimeMillis(); System.out.println(endMillis - startMillis); } }
将运行结果复制到excel表格中,利用excel的图表功能生成几种测试的耗时波动图表(单位:毫秒):
1.查询10次数据库,重复100次结果:
2.查询100次数据库,重复100次结果:
3.查询1000次数据库,重复100次结果:
平均值:
10次查询:32毫秒
100次查询:314毫秒
1000次查询: 2879毫秒
从平均值可以很明显的看出Proxool的性能非常优秀,远超其他两种连接池,这里的性能比较结果为Proxool>Druid>=c3p0。Druid未能表现出官方所说的优秀性能,此次几种测试方法具有很大的局限性,配置也均采用各连接池的默认属性,大家可以根据情况自行配置优化。
下一篇文章将对Proxool,Druid,c3p0,tomcat jdbc pool进行更详尽细致的对比测试。
相关推荐
Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool是Apache的一个开源项目,提供了一个基于池的数据库连接管理工具,可以提高数据库访问性能。 首先,我们来详细了解一下...
标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...
Proxool作为数据库连接池,通过配置参数可以灵活地调整连接池的行为,以满足不同性能和稳定性需求。Spring框架中的DataSource配置使得Proxool的集成变得简单,而proxool-0.9.1.jar和proxool-cglib.jar是运行Proxool...
3. `proxool-0.9.1.jar`:这是Proxool 0.9.1版本的JAR文件,提供了更新的功能和可能的性能优化或错误修复。 Proxool的核心特性包括: - 连接池管理:它可以维护一组预创建的数据库连接,提高应用的性能和响应速度,...
通过对连接池大小、超时时间、测试策略等参数的调整,可以优化Proxool的性能。这通常需要根据实际负载和系统资源进行实验和分析。 10. **关闭与清理** 当应用不再需要数据库连接时,正确关闭Proxool数据源是非常...
同时,定期更换加密密钥和监控日志可以帮助检测任何潜在的安全威胁。 总之,"proxool连接池用户名密码加密"是一个重要的安全实践,通过加密数据库连接的凭证,我们可以提高系统的安全性,保护数据免受未经授权的...
- `src/test/java`: 测试代码,用于验证和测试Proxool的功能。 3. **核心组件** - **PoolConfig**: 连接池配置类,用于设置连接池的参数,如最大连接数、超时时间等。 - **PoolAlias**: 池别名,每个连接池都有...
1. **proxool-cglib.jar**:CGLIB(Code Generation Library)是一个强大的高性能的代码生成库,它在许多AOP(面向切面编程)框架中被使用,如Spring AOP。在Proxool中,CGLIB可能用于动态生成代理类,以实现对...
3. **配置灵活**:Proxool 允许通过XML配置文件来定制连接池的参数,如最大连接数、空闲超时时间、连接测试频率等。 4. **透明集成**:对应用来说,使用Proxool就像使用普通的JDBC连接一样,无需修改代码,只需更改...
3. **成熟稳定**:作为0.9.0RC3版本,proxool已经经过了大量的测试和实际应用,具有较高的稳定性和可靠性。 4. **跨平台支持**:proxool支持多种数据库,包括Oracle、MySQL、PostgreSQL等,这使得它能够在多种环境...
比如,Proxool的动态扩展性和监控能力在某些情况下可能更具优势,但可能在性能上稍逊于HikariCP这样的高性能连接池。 6. **版本信息** 提供的`proxool-0.9.1`版本是Proxool的一个旧版本,尽管较新版本可能包含更多...
"proxool-0.9.0RC3.jar" 是一个Java档案文件,它包含了Proxool库的0.9.0RC3版本。Proxool是开源的Java连接池实现,设计用于提供数据库连接管理服务,它使得在多线程环境中高效地管理和重用数据库连接成为可能。连接...
5. **日志和监控**:Proxool提供了详细的监控信息,如`house-keeping-test-sql`属性可以设置一个SQL语句用于检测连接是否有效。`log-enabled`开启日志记录,便于调试和性能分析。 6. **应用集成**:在Spring框架中...
- **连接池配置**:Proxool支持通过XML配置文件灵活地设置连接池参数,如最大连接数、超时时间、空闲检测间隔等。 - **透明化使用**:Proxool遵循JDBC接口,因此对应用程序来说,使用连接池与直接使用数据库连接...
7. **测试**:`test`目录包含单元测试代码,用于验证Proxool的功能和性能。 8. **许可证文件**:`LICENSE`文件会明确指出项目的开源许可协议,例如Apache License 2.0,规定了用户可以如何使用、修改和分发软件。 ...
5. **测试与监控**: Proxool提供了监控接口,可以通过HTTP访问监控页面查看连接池的状态。在Spring配置文件中添加如下配置: ```xml ``` 然后通过浏览器访问`http://localhost:8080/proxy`即可看到监控...
在`proxool-0.8.3`版本中,开发者可以利用此jar包来优化数据库访问性能,减少数据库连接的创建和销毁开销,提高系统资源的利用率。这个版本的proxool包含了对多种数据库的兼容性,如Oracle、MySQL、PostgreSQL等。 ...
对于性能测试,通常会关注以下几个指标: - 初始化速度:连接池创建的速度,包括加载配置和初始化连接。 - 获取连接速度:在高并发情况下,应用能否快速获取到数据库连接。 - 连接回收效率:空闲连接的回收速度,...
Proxool 是一个数据库连接池,它能够有效地管理数据库连接,提高应用性能。通过缓存和重用数据库连接,Proxool 可以减少创建和销毁连接的开销,提高系统的响应速度和并发能力。 整合 Spring MVC、Shiro 和 Proxool ...