BeeOP 高性能 Java 对象池开源项目

我要开发同款
匿名用户2021年01月04日
117阅读

技术信息

开源地址
https://github.com/Chris2018998/BeeOP
授权协议
GPL-3.0

作品详情

BeeOP小蜜蜂对象池是一款轻量高性能Java对象池。

Mave坐标(Java7)

depedecy><groupId>com.github.chris2018998</groupId><artifactId>beeop</artifactId><versio>1.0.3</versio></depedecy

性能测试

100万次借用/归还(1000线程x1000次),获取时间分布,平均时间

对象池名commos-pool2-2.9.0BeeOP0.3_FairBeeOP0.3_Compete平均时间2.6774560.0003470.000187测试配置:PC:I5-4210M(2.6赫兹,双核4线程),12G内存Java:JAVA8_64Pool:初始10,最大10

日志文件:https://github.com/Chris2018998/BeeOP/blob/mai/doc/temp/ObjectPool.log

源码位置:https://github.com/Chris2018998/BeeOP/blob/mai/doc/temp/BeeOP_Test.rar

范例

publiciterfaceBook{publicStriggetName();publicloggetNumber();}publicclassJavaBookimplemetsBook{privateStrigame;privatelogumber;publicJavaBook(){this("Java核心技术·卷2",System.curretTimeMillis());}publicJavaBook(Strigame,logumber){this.ame=ame;this.umber=umber;}publicStriggetName(){returame;}publicloggetNumber(){returumber;}publicStrigtoStrig(){returame;}publicclassJavaBookFactoryimplemetsBeeObjectFactory{publicObjectcreate(Propertiesprop)throwsBeeObjectExceptio{returewJavaBook("Java核心技术·卷1",System.curretTimeMillis());}publicvoidsetDefault(Objectobj)throwsBeeObjectExceptio{}publicvoidreset(Objectobj)throwsBeeObjectExceptio{}publicvoiddestroy(Objectobj){}publicbooleaisAlive(Objectobj,logtimeout){returtrue;}}publicclassTestBookPool{publicstaticvoidmai(Strig[]){BeeObjectSourceCofigcofig=ewBeeObjectSourceCofig();cofig.setObjectFactory(ewJavaBookFactory());      cofig.setObjectIterfaces(ewClass[]{Book.class});BeeObjectSourceobs=ewBeeObjectSource(cofig);BeeObjectHadlehadle=ull;try{hadle=obs.getObject();Objectv=hadle.call("getName");System.out.pritl("Bookame:"+v);}catch(BeeObjectExceptioe){}fially{if(hadle!=ull)hadle.close();}}}

功能支持

1:对象借用超时

2:对象借用支持公平与竞争模式

3:支持对象安全关闭

4:断网对象池自动恢复

5:闲置超时和持有超时处理

6:若对象发生异常,池自动增补

7:对象回收时重置

8:对象池重置

9:支持JMX

配置项说明

配置项描述备注poolName池名如果未赋值则会自动产生一个fairMode是否公平模式默认false,竞争模式iitialSize池初始创建对象数默认为0maxActive池最大创建对象数默认为10个borrowSemaphoreSize对象借线程最大并行数默认取最大对象数/2与cpu核心数的最小值maxWait对象借用等待最大时间(毫秒)默认8秒,对象请求最大等待时间idleTimeout对象闲置最大时间(毫秒)默认3分钟,超时会被清理holdTimeout对象被持有不用最大时间(毫秒)默认5分钟,超时会被清理forceCloseObject是否需要暴力关闭对象池关闭或重置,使用,默认false;true:直接关闭使用中对象,false:等待处于使用中归还后再关闭waitTimeToClearPool延迟清理的时候时间(秒)默认3秒,非暴力清理池下,还存在使用中的对象,延迟等待时间再清理idleCheckTimeIterval对象闲置扫描线程间隔时间(毫秒)默认5分钟objectFactoryClassName自定义的对象工厂类名默认为空eableJmxJMX监控支持开关默认false

功能介绍

BeeOP 小蜜蜂对象池是一款轻量高性能Java对象池。 Maven坐标(Java7) dependency>
<groupId>com.github.chris2018998</grou...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论