`
g21121
  • 浏览: 694702 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Proxool性能测试

 
阅读更多

        前面已经做了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进行更详尽细致的对比测试。

2
1
分享到:
评论

相关推荐

    hibernate3+ proxool-0.9.1配置 和proxool-0.9.1.jar

    Hibernate3是一款流行的持久层框架,它允许开发者用面向对象的方式来操作数据库,而Proxool是Apache的一个开源项目,提供了一个基于池的数据库连接管理工具,可以提高数据库访问性能。 首先,我们来详细了解一下...

    proxool-0.9.1.jar proxool_cglib-0.9.1.jar

    标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...

    proxool配置参数说明及proxool-0.9.1相关jar包及spring配置方法

    Proxool作为数据库连接池,通过配置参数可以灵活地调整连接池的行为,以满足不同性能和稳定性需求。Spring框架中的DataSource配置使得Proxool的集成变得简单,而proxool-0.9.1.jar和proxool-cglib.jar是运行Proxool...

    proxool相关jar包.rar

    3. `proxool-0.9.1.jar`:这是Proxool 0.9.1版本的JAR文件,提供了更新的功能和可能的性能优化或错误修复。 Proxool的核心特性包括: - 连接池管理:它可以维护一组预创建的数据库连接,提高应用的性能和响应速度,...

    Proxool-数据源配置详解

    通过对连接池大小、超时时间、测试策略等参数的调整,可以优化Proxool的性能。这通常需要根据实际负载和系统资源进行实验和分析。 10. **关闭与清理** 当应用不再需要数据库连接时,正确关闭Proxool数据源是非常...

    proxool连接池用户名密码加密

    同时,定期更换加密密钥和监控日志可以帮助检测任何潜在的安全威胁。 总之,"proxool连接池用户名密码加密"是一个重要的安全实践,通过加密数据库连接的凭证,我们可以提高系统的安全性,保护数据免受未经授权的...

    proxool-0.9.1源码下载

    - `src/test/java`: 测试代码,用于验证和测试Proxool的功能。 3. **核心组件** - **PoolConfig**: 连接池配置类,用于设置连接池的参数,如最大连接数、超时时间等。 - **PoolAlias**: 池别名,每个连接池都有...

    proxool 9.0.1

    1. **proxool-cglib.jar**:CGLIB(Code Generation Library)是一个强大的高性能的代码生成库,它在许多AOP(面向切面编程)框架中被使用,如Spring AOP。在Proxool中,CGLIB可能用于动态生成代理类,以实现对...

    proxool-0.9.1.jar

    3. **配置灵活**:Proxool 允许通过XML配置文件来定制连接池的参数,如最大连接数、空闲超时时间、连接测试频率等。 4. **透明集成**:对应用来说,使用Proxool就像使用普通的JDBC连接一样,无需修改代码,只需更改...

    proxool-0.9.0RC3

    3. **成熟稳定**:作为0.9.0RC3版本,proxool已经经过了大量的测试和实际应用,具有较高的稳定性和可靠性。 4. **跨平台支持**:proxool支持多种数据库,包括Oracle、MySQL、PostgreSQL等,这使得它能够在多种环境...

    proxool.jar

    比如,Proxool的动态扩展性和监控能力在某些情况下可能更具优势,但可能在性能上稍逊于HikariCP这样的高性能连接池。 6. **版本信息** 提供的`proxool-0.9.1`版本是Proxool的一个旧版本,尽管较新版本可能包含更多...

    proxool-0.9.0RC3.jar

    "proxool-0.9.0RC3.jar" 是一个Java档案文件,它包含了Proxool库的0.9.0RC3版本。Proxool是开源的Java连接池实现,设计用于提供数据库连接管理服务,它使得在多线程环境中高效地管理和重用数据库连接成为可能。连接...

    关于proxool数据库连接池的配置集合

    5. **日志和监控**:Proxool提供了详细的监控信息,如`house-keeping-test-sql`属性可以设置一个SQL语句用于检测连接是否有效。`log-enabled`开启日志记录,便于调试和性能分析。 6. **应用集成**:在Spring框架中...

    proxool.jar包,proxool连接池用到的两个jar包

    - **连接池配置**:Proxool支持通过XML配置文件灵活地设置连接池参数,如最大连接数、超时时间、空闲检测间隔等。 - **透明化使用**:Proxool遵循JDBC接口,因此对应用程序来说,使用连接池与直接使用数据库连接...

    proxool-0.9.1.tar.gz

    7. **测试**:`test`目录包含单元测试代码,用于验证Proxool的功能和性能。 8. **许可证文件**:`LICENSE`文件会明确指出项目的开源许可协议,例如Apache License 2.0,规定了用户可以如何使用、修改和分发软件。 ...

    Struts2+spring+hibernate中的proxool连接池配置

    5. **测试与监控**: Proxool提供了监控接口,可以通过HTTP访问监控页面查看连接池的状态。在Spring配置文件中添加如下配置: ```xml ``` 然后通过浏览器访问`http://localhost:8080/proxy`即可看到监控...

    proxool-0.8.3 jar包及应用实例

    在`proxool-0.8.3`版本中,开发者可以利用此jar包来优化数据库访问性能,减少数据库连接的创建和销毁开销,提高系统资源的利用率。这个版本的proxool包含了对多种数据库的兼容性,如Oracle、MySQL、PostgreSQL等。 ...

    连接池c3p0 ,Proxool ,Druid ,Tomcat Jdbc Pool对比测试

    对于性能测试,通常会关注以下几个指标: - 初始化速度:连接池创建的速度,包括加载配置和初始化连接。 - 获取连接速度:在高并发情况下,应用能否快速获取到数据库连接。 - 连接回收效率:空闲连接的回收速度,...

    spring mvc shiro proxool集成

    Proxool 是一个数据库连接池,它能够有效地管理数据库连接,提高应用性能。通过缓存和重用数据库连接,Proxool 可以减少创建和销毁连接的开销,提高系统的响应速度和并发能力。 整合 Spring MVC、Shiro 和 Proxool ...

Global site tag (gtag.js) - Google Analytics