JBoss AS性能调优与企业级Java组件解析
1. 连接池使用策略
在Java开发中,关于数据库连接池的使用存在一个常见误区,很多开发者认为持续从连接池中获取和关闭连接会给应用服务器带来过大压力。因此,常常会看到像 DatabaseManager 这样的类持有静态 Connection 字段,以便在应用中共享连接。
实际上,获取和释放连接的成本并没有想象中那么高。以下代码可以测试从连接池获取并释放一个连接所需的时间(以毫秒为单位):
double time1 = System.nanoTime();
Connection connection = datasource.getConnection();
connection.close();
double time2 = System.nanoTime();
System.out.println("Time to grab a connection " +(time2 - time1)/1000000);
在奔腾4双核2.80 GHz的机器上执行该测试,结果显示从服务器连接池获取和释放一个连接的成本低至0.2毫秒。
不过,这并不意味着可以不必要地滥用连接池。例如,在同一线程中执行一组数据库操作时,重用相同的连接和语句是个不错的选择。但在多个业务方法之间共享连接实例并非明智之举,因为这容易导致混乱并可能引发连接泄漏。所以,保持代码简洁,不要害怕在每个业务方法中打开和关闭连接。
超级会员免费看
订阅专栏 解锁全文
1179

被折叠的 条评论
为什么被折叠?



