当前位置: 首页 > 知识库问答 >
问题:

自定义连接池速度慢(JAVA)?

王才
2023-03-14

对于我的项目,我们被要求实现我们自己的连接池。我们不允许使用来自jdbc的PGPoolingDataSource。当我使用jdbc池时,我的程序运行得非常快,而我自己的连接池运行得不可预测,速度也慢得多。我的连接使一些任务等待了很长时间,这是jdbc池所没有的。

我正在使用Arrayblockingqueue实现连接池,我只是创建一个预先说过的连接数,然后让客户机借用并放回。

我是说这对我来说似乎有意义,而且很有效。但是它很慢,有时任务需要很长时间才能完成,有什么我可以改进的吗?让它更快更可靠?

共有1个答案

商茂勋
2023-03-14

您使用了错误的数据结构来存储连接ArrayBlockingQueue是一种FIFO结构,它会降低处理速度,使用ConcurrentLinkedQueue是一种合理且快速的选择。

 类似资料:
  • 问题内容: 我在调试此问题时非常困难。每当我尝试与postgres建立连接时,都需要花费一分钟的时间。建立连接后,一切正常。我尝试禁用所有映射并且不加载任何映射,但是仍然需要花费很长时间来获取连接。我也尝试过禁用验证,没有区别。当我使用简单的简单JDBC连接时,它是瞬时的。Hibernate所做的事情需要花费大量时间,而我似乎无法缩小范围。任何输入,不胜感激! Postgres驱动程序: 配置设置

  • 问题内容: 我已经写了一个工作正常的n元树ADT。但是,我需要将其序列化存储在调用类的变量中。例如。 我已经编写了可以完全满足我的需要的方法,但是在非常大的输入上,它要花很多时间(在100MB的xml文件上需要20分钟)-我已经对方法进行了计时,并且从xml文件构建树的速度很快,但是调用上面显示的toString()非常慢。 我猜想这与字符串的构建方式有关,而不是与如何遍历树有关?有一个更好的方法

  • 本文向大家介绍连接MySql速度慢的解决方法(skip-name-resolve),包括了连接MySql速度慢的解决方法(skip-name-resolve)的使用技巧和注意事项,需要的朋友参考一下 最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。 原因

  • SOFARPC 支持自定义业务线程池。可以为指定服务设置一个独立的业务线程池,和 SOFARPC 自身的业务线程池是隔离的。多个服务可以共用一个独立的线程池。 SOFARPC 要求自定义线程池的类型必须是 com.alipay.sofa.rpc.server.UserThreadPool。 XML 方式 如果采用 XML 的方式发布服务,可以先设定一个 class 为 com.alipay.sof

  • 本文向大家介绍自定义一个简单的JDBC连接池实现方法,包括了自定义一个简单的JDBC连接池实现方法的使用技巧和注意事项,需要的朋友参考一下 一、什么是JDBC连接池? 在传统的JDBC连接中,每次获得一个Connection连接都需要加载通过一些繁杂的代码去获取,例如以下代码: 这样繁杂的操作只为了获取一次连接,当然,我们可以将其封装成一个工具类来访问(上图以封装好Connection的连接),但

  • 我正在编写一个Spring Boot应用程序,它与Snowflake数据仓库连接,并对其执行SQL查询。我编写了一个配置类,用于配置数据源以连接到Snowflake数据仓库,如下所示: 我的pom.xml如下: 在我的Spring boot应用程序中,我必须为这个数据源使用一个连接池。 如何在我的应用程序中使用HikariCP连接池,它可以与我的定制数据源完美配合? ------编辑---感谢您提