菏泽哪里有做网站的因酷网站建设

news/2025/10/2 16:33:40/文章来源:
菏泽哪里有做网站的,因酷网站建设,网站开发构成,网站建设哪个公司转载自公众号#xff1a;工匠小猪猪的技术世界 摘要: 本文非原创#xff0c;是笔者搜集了一些HikariCP相关的资料整理给大家的介绍#xff0c;主要讲解了为什么sb2选择了HikariCP以及HikariCP为什么这么快。 Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由… 转载自公众号工匠小猪猪的技术世界 摘要: 本文非原创是笔者搜集了一些HikariCP相关的资料整理给大家的介绍主要讲解了为什么sb2选择了HikariCP以及HikariCP为什么这么快。 Springboot2默认数据库连接池选择了HikariCP为何选择HikariCP理由一、代码量理由二、口碑理由三、速度理由四、稳定性理由五、可靠性HikariCP为什么这么快优化并精简字节码更好的并发集合类实现使用FastList替代ArrayListHikariCP与Druid相比哪个更好Springboot2快速上手参考资料 Spring Boot 2默认数据库连接池选择了HikariCP 默认的数据库连接池由Tomcat换成HikariCP. 如果在一个Tomcat应用中用spring.datasource.type来强制使用Hikari连接池, 则可以去掉这个override. 为何选择HikariCP HiKariCP是数据库连接池的一个后起之秀号称性能最好可以完美地PK掉其他连接池是一个高性能的JDBC连接池基于BoneCP做了不少的改进和优化。其作者还有另外一个开源作品——高性能的JSON解析器HikariJSON。 它超快快到连Spring Boot 2都宣布支持了。 代码体积更是少的可怜130kb。 https://github.com/brettwooldridge/HikariJSON 为何要使用HiKariCP这要先从BoneCP说起什么不是有C3P0/DBCP这些成熟的数据库连接池吗一直用的好好的为什么又搞出一个BoneCP来因为传说中BoneCP在快速这个特点上做到了极致官方数据是C3P0等的25倍左右。不相信其实我也不怎么信。可是有图有真相啊图片来自BoneCP官网http://jolbox.com/benchmarks.html 从上述结果可以看出HikariCP的性能远高于c3p0、tomcat等连接池以致后来BoneCP作者都放弃了维护在Github项目主页推荐大家使用HikariCP。另外Spring Boot将在2.0版本中把HikariCP作为其默认的JDBC连接池。 PS:需要指出的是上图中的数据是HikariCP作者对各个连接池调用DataSource.getConnection()、Connection.close()、Connection.prepareStatement()、Statement.execute()、Statement.close()方法的性能测试结果。 而且网上对于BoneCP是好评如潮啊推荐的文章一搜一大堆。 然而上Maven Repository网站http://mvnrepository.com/artifact/com.jolbox/bonecp查找有没有最新版本的时候你会发现最新的是2013年10月份的这么久没新版本出来了。于是再去BoneCP的Githuthttps://github.com/wwadge/bonecp上看看最近有没有提交代码。却发现BoneCP的作者对于这个项目貌似已经心灰意冷说是要让步给HikariCP了有图有真相 ……什么又来一个CP……什么是HikariHikari来自日文是“光”阳光的光不是光秃秃的光的意思。作者估计是为了借助这个词来暗示这个CP速度飞快。不知作者是不是日本人不过日本也有很多优秀的码农听说比特币据说日本人搞出来的。。。 这个产品的口号是“快速、简单、可靠”。实际情况跟这个口号真的匹配吗又是有图有真相Benchmarks又来了 这个图也间接地、再一次地证明了boneCP比c3p0强大很多当然跟“光”比起来又弱了不少啊。 那么这么好的是怎么做到的呢官网详细地说明了HikariCP所做的一些优化总结如下 字节码精简 优化代码直到编译后的字节码最少这样CPU缓存可以加载更多的程序代码优化代理和拦截器减少代码例如HikariCP的Statement proxy只有100行代码只有BoneCP的十分之一自定义数组类型FastStatementList代替ArrayList避免每次get()调用都要进行range check避免调用remove()时的从头到尾的扫描自定义集合类型ConcurrentBag提高并发读写的效率其他针对BoneCP缺陷的优化比如对于耗时超过一个CPU时间片的方法调用的研究但没说具体怎么优化。 很多优化的对比都是针对BoneCP的……哈哈。参考文章https://github.com/brettwooldridge/HikariCP/wiki/Down-the-Rabbit-Hole 理由一、代码量 几个连接池的代码量对比代码量越少一般意味着执行效率越高、发生bug的可能性越低 理由二、口碑 可是“黄婆卖瓜自催自擂”这个俗语日本人也是懂得于是用户的好评如潮也是有图有真相 理由三、速度 还有第三方关于速度的测试 理由四、稳定性 也许你会说速度高如果不稳定也是硬伤啊。于是关于稳定性的图也来了 理由五、可靠性 另外关于可靠性方面也是有实验和数据支持的。对于数据库连接中断的情况通过测试getConnection()各种CP的不相同处理方法如下所有CP都配置了跟connectionTimeout类似的参数为5秒钟 HikariCP等待5秒钟后如果连接还是没有恢复则抛出一个SQLExceptions 异常后续的getConnection()也是一样处理C3P0完全没有反应没有提示也不会在“CheckoutTimeout”配置的时长超时后有任何通知给调用者然后等待2分钟后终于醒来了返回一个errorTomcat返回一个connection然后……调用者如果利用这个无效的connection执行SQL语句……结果可想而知大约55秒之后终于醒来了这时候的getConnection()终于可以返回一个error但没有等待参数配置的5秒钟而是立即返回errorBoneCP跟Tomcat的处理方法一样也是大约55秒之后才醒来有了正常的反应并且终于会等待5秒钟之后返回error了 可见HikariCP的处理方式是最合理的。根据这个测试结果对于各个CP处理数据库中断的情况评分如下 参考文章https://github.com/brettwooldridge/HikariCP/wiki/Bad-Behavior:-Handling-Database-Down HikariCP为什么这么快 JDBC连接池的实现并不复杂主要是对JDBC中几个核心对象Connection、Statement、PreparedStatement、CallableStatement以及ResultSet的封装与动态代理。接下来从几个方面来看看HikariCP为什么这么快 优化并精简字节码 HikariCP利用了一个第三方的Java字节码修改类库Javassist来生成委托实现动态代理。动态代理的实现在ProxyFactory类源码如下 发现这些代理方法中只有一行直接抛异常的代码注释写着“Body is replaced (injected) by JavassistProxyFactory”其实方法body中的代码是在编译时调用JavassistProxyFactory才生成的主要代码见下图 之所以使用Javassist生成动态代理是因为其速度更快相比于JDK Proxy生成的字节码更少精简了很多不必要的字节码。 ConcurrentBag更好的并发集合类实现 ConcurrentBag的实现借鉴于C#中的同名类是一个专门为连接池设计的lock-less集合实现了比LinkedBlockingQueue、LinkedTransferQueue更好的并发性能。ConcurrentBag内部同时使用了ThreadLocal和CopyOnWriteArrayList来存储元素其中CopyOnWriteArrayList是线程共享的。ConcurrentBag采用了queue-stealing的机制获取元素首先尝试从ThreadLocal中获取属于当前线程的元素来避免锁竞争如果没有可用元素则再次从共享的CopyOnWriteArrayList中获取。此外ThreadLocal和CopyOnWriteArrayList在ConcurrentBag中都是成员变量线程间不共享避免了伪共享(false sharing)的发生。 使用FastList替代ArrayList FastList是一个List接口的精简实现只实现了接口中必要的几个方法。JDK ArrayList每次调用get()方法时都会进行rangeCheck检查索引是否越界FastList的实现中去除了这一检查只要保证索引合法那么rangeCheck就成为了不必要的计算开销(当然开销极小)。此外HikariCP使用List来保存打开的Statement当Statement关闭或Connection关闭时需要将对应的Statement从List中移除。通常情况下同一个Connection创建了多个Statement时后打开的Statement会先关闭。ArrayList的remove(Object)方法是从头开始遍历数组而FastList是从数组的尾部开始遍历因此更为高效。 HikariCP与Druid相比哪个更好 有些用户给了druid这样的评论 不评论一个追求性能一个偏向监控直接看之前有人给HikariCP提的关于跟Druid对比分析的issue吧。HikariCP作者对Druid做了测试并给出了测试结果数据Druid作者温少也对此作了评论。Issue链接 https://github.com/brettwooldridge/HikariCP/issues/232 笔者个人的观点是hikariCP可以提供监控功能的比如metrics可以参见笔者的这篇文章 【追光者系列】HikariCP连接池监控指标实战。另外监控方面skywalking、pinpoint、mycat这些agent也是可以做到的以后service mesh普及了更加可以监控了比如sharding-jdbc也可以做监控datameshsidecar也可以做监控的。 Springboot2快速上手 说得这么好用起来会不会很麻烦啊会不会有很多参数要配置才能有这样的效果啊答案是不会。 springboot 2.0 默认连接池就是Hikari了所以引用parents后不用专门加依赖 配置一下就好 # jdbc_config datasourcespring.datasource.driver-class-namecom.mysql.jdbc.Driverspring.datasource.urljdbc:mysql://127.0.0.1:3306/datebook?useUnicodetruecharacterEncodingUTF-8autoReconnecttrueuseSSLfalsezeroDateTimeBehaviorconvertToNullspring.datasource.usernamerootspring.datasource.passwordroot# Hikari will use the above plus the following to setup connection poolingspring.datasource.typecom.zaxxer.hikari.HikariDataSourcespring.datasource.hikari.minimum-idle5spring.datasource.hikari.maximum-pool-size15spring.datasource.hikari.auto-committruespring.datasource.hikari.idle-timeout30000spring.datasource.hikari.pool-nameDatebookHikariCPspring.datasource.hikari.max-lifetime1800000spring.datasource.hikari.connection-timeout30000spring.datasource.hikari.connection-test-querySELECT 1直接启动即可 如图 参考资料 https://blog.csdn.net/clementad/article/details/46928621

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设备沉睡的“心跳”难题:BLE休眠后无法被手机唤醒的分析与优化 - 详解

设备沉睡的“心跳”难题:BLE休眠后无法被手机唤醒的分析与优化 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &…

CPU温度查看(Core Temp)

前言 原因很简单,用到Core Temp这个软件是因为想查看CPU的温度,现在从任务管理器中已经看不到CPU温度了,所以需要其他方式来查看为什么需要看CPU的温度呢,因为在某天,我发现刚开机,基本没跑什么任务,风扇就开始…

实用指南:Python虚拟环境管理工具virtualenv详解

实用指南:Python虚拟环境管理工具virtualenv详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

博罗网站设计公司网站服务搭建

sys模块 与操作系统交互的一个接口 文件夹相关 os.makedirs(dirname1/dirname2) 可生成多层递归目录os.removedirs(dirname1) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推os.mkdir(dirnam…

负载均衡式的在线OJ项目编写(三) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

云校网站建设wordpress缓存清除

BLE服务器与客户端通信 文章目录 BLE服务器与客户端通信1、软件准备2、硬件准备3、代码实现3.1 BLE服务器实现3.2 Android手机测试BLE服务器3.3 ESP32 BLE客户端在本文中,我们将介绍如何使用低功耗蓝牙在两个 ESP32 开发板之间执行 BLE 服务器客户端通信。 换句话说,将介绍如…

织梦菜谱网站模板免费下载有些网页打不开是什么原因

一、二次利用风险 电动汽车的当前电池信息,如年份、容量和制造商,通常是相互关联和不完整的。再加上电池内部的电化学变化,SLB在包括安全和环境在内的一些领域存在很大的风险,这表明短期内梯次利用仍然是一个不成熟的方案。 1.1 安…

网站建设推广型百度网址大全导航首页

822.翻转卡片游戏 在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意一张卡片的正面的数字都…

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图

深入解析:python学智能算法(三十九)|使用PyTorch模块的normal()函数绘制正态分布函数图pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

2025污水处理设备厂家 TOP 企业品牌推荐排行榜,一体化,生活,工业,养殖,医疗,农村,学校,餐厨,隧洞,高速污水处理设备公司推荐!

在环保意识日益增强、政策法规持续趋严的当下,污水处理行业正面临着前所未有的挑战与机遇。随着工业化和城市化进程的加速,污水排放量不断攀升,污水成分也愈发复杂多样。传统的污水处理设备在处理效率、能耗控制以及…

会议网站定制广州网站建设定制方案

文章目录 一、介绍1. 支付2. 支付结果 二、前提准备1. 支付宝开放平台2. 内网穿透3. 局域网 三、order微服务1. 依赖、配置2. 工具类1. 二维码生成2. AlipayConfig 3. 端点代码1. /generatepaycode2. /requestpay3. /payresult4. /receivenotify 环境如下 Version手机安卓支付…

详细介绍:网络安全常见敏感目录字典

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎么做微信领券网站建立电影网站教程

怎么查看云服务器上的文件 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。安装完操作系统后的临时云服务器需要进行相关配置&#…

给工厂做英文外贸网站apache建设多个网站

今天安装sqoop查看版本报错错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty查看hbase版本也出错 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty hbase version 错误: 找不到或无法加载主类 org.apache.hadoop.hbase.…

软件上传到那个网站做宣传apache php wordpress

前些天学的现在又差不多忘了...比如计算机开机过程,指令执行过程,浏览器输入网址回车后到显示网页发生了什么等等... 接下去打算系统复习下操作系统,看了清华的公开课看了一半了,没做笔记,等看现代操作系统时再做笔记吧…

郑州网站服务公司怎样做销售网站

Linux 系统中有软链接和硬链接两种特殊的“文件”。 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。 创建方法都很简单: 软链接(符号链接…

phpnow 搭建本地网站物流做网站哪家好

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…

域名在线解析株洲seo优化报价

正题 题目大意 hhh层&#xff0c;每层n∗mn*mn∗m个石头&#xff0c;挖开不同位置的石头有不同的消耗&#xff0c;只能从高层下到低层。有一些宝藏&#xff0c;求拿到所有宝藏的最小代价。 解题思路 先考虑只有111层的情况&#xff0c;因为挖开的不用再挖 &#xff0c;我们可以…

用PyTorch实现CBOW模型:从原理到实战的Word2Vec入门指南 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …