java 可达性分析算法_js并发请求

java 可达性分析算法_js并发请求作者:Grey原文地址:OkHttpClient调优案例实际案例系统运行一段时间后,线程数量飙升,持续居高不下排查工具https://fastthread.io/这个工具是在线的,可以将日志文件上传上去后直接生成分析报告,并且可以导出为PDF以下是我导出的分析结果值得关注的指标:和占了前两位,由于很多同事开发的时候,没有定义有意义的线程名称,所以这2031个线程不好排查,我们就从这里的线程数入手,很显然,这里是的使用问题,所以,我们排查了一下系统中所有使用的地方,发现所有的用法都是这样用的:因为我们

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

OkHttpClient 调优案例

作者:Grey

原文地址:OkHttpClient 调优案例

实际案例
系统运行一段时间后,线程数量飙升,CPU持续居高不下

排查工具
https://fastthread.io/

这个工具是在线的,可以将dump日志文件上传上去后直接生成分析报告,并且可以导出为PDF
以下是我导出的分析结果

值得关注的指标:

image

poolOkHttp ConnectionPool占了前两位,由于很多同事开发的时候,没有定义有意义的线程名称,所以pool这2031个线程不好排查,

我们就从OkHttp ConnectionPool这里的线程数入手,很显然,这里是Okhttp的使用问题,

所以,我们排查了一下系统中所有使用Okhttp的地方,发现所有OkhttpClient的用法都是这样用的:

image

因为我们有好多的服务,每个服务都可能会用OkhttpClient,所以图中的getHttpClient()方法遍布各地,这个方法有什么问题呢?

我们进到了OkttpClient的源码中,看到了这个构造方法,找到了原因:

image

这个构造方法中,每次拿一个OkhttpClient客户端,

就要new一个ConnectionPool

类似与每次new一个Thread就要new一个ThreadPool一样,

ConnectionPool完全是可以复用的,所以不需要new ConnectionPool,复用即可,

所以我们把OkhttpClient的获取逻辑修改成了以下:

image

即每个OkhttpClient复用一个ConnectionPool
为了验证,我特意在IDEA里面写了两个小程序来实验一下:

image

image

源码:

OkHttpClientNotSharePool

OkHttpClientSharePool

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234509.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Matlab归一化函数(mapminmax)

    Matlab归一化函数(mapminmax)功能:将矩阵的每一行处理成[-1,1]区间。处理需要归一化的m*n矩阵X,归一化后的矩阵记为Y。主要有5种调用形式1.[Y,PS]=mapminmax(X,YMIN,YMAX)其中,YMIN是我们期望归一化后矩阵Y每行的最小值,YMAX是我们期望归一化后矩阵Y每行的最大值。例1:待处理矩阵X=[456;789]我们期望归一化后每行的最小值为0,最大值为1.程序如下…

    2022年6月29日
    34
  • centos安装mysql客户端安装_CENTOS安装MYSQL

    centos安装mysql客户端安装_CENTOS安装MYSQL1[root@localhost~]#yuminstallmysql-server注意:此处错误提示为安装失败。原因:CentOS7自带有MariaDB而不是MySQL,MariaDB和MySQL一样也是开元的数据库解决方案:如果必须要安装MySQL,首先必须添加mysql社区repo通过输入命令:sudorpm-Uvhhttp://dev.mysql.com/get/mysql-c…

    2022年6月26日
    28
  • 7折怎么用计算机,美国联想八通道7折好价,海淘Thinkpad X260 笔记本电脑开箱简评(附齐购物到货过程)…

    7折怎么用计算机,美国联想八通道7折好价,海淘Thinkpad X260 笔记本电脑开箱简评(附齐购物到货过程)…美国联想八通道7折好价,海淘ThinkpadX260笔记本电脑开箱简评(附齐购物到货过程)2016-06-0810:30:1896点赞288收藏127评论接上一篇购物过程贴我擦,你有完没完!!!五、转运过程(补齐剩余回国、清关、缴税、到货过程)(一)简要说明电脑到达转运仓库后,会给你绑定的电话发送一条提醒短信。本人在5月12日收到短信通知,本想给大家找找短信,都怪我手太贱已删除,哎。…

    2022年5月24日
    36
  • 视觉slam与激光slam_适马fpl 视频

    视觉slam与激光slam_适马fpl 视频SLAM(同步定位与地图构建),是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程,解决机器人等在未知环境下运动时的定位与地图构建问题。目前,SLAM的主要应用于机器人、无人机、无人驾驶、AR、VR等领域。其用途包括传感器自身的定位,以及后续的路径规划、运动性能、场景理解。SLAM按照传感器来分,分为视觉SLAM(VSLAM)和激光SLAM,视觉SLAM基于摄像

    2022年8月23日
    5
  • c数组移除指定元素方法_删除数组中的某个对象

    c数组移除指定元素方法_删除数组中的某个对象方式一:通过差集的方式排除0newList<int>{0,1,2,3,4,5}.Except(newList<int>{0}).ToList()方式二:先去重,在排除0varlist=newList<int>{0,1,2,3,4,5,0}.Distinct()list.Remove(0);

    2022年8月10日
    7
  • 电流转电压模块4-20mA转0-3.3/5V/10V/15V转换变送器电路原理解析

    电流转电压模块4-20mA转0-3.3/5V/10V/15V转换变送器电路原理解析工业传感器常使用电流大小来传输数据,那么作为传感器数据的接收方,比如单片机,有内部AD的单片机可以检测电压的大小,那么首先必须将电流信号转换为电压信号,然后进行电压幅值变换使其适合MCU处理的电压范围。下面我们从设计的电流转电压的模块电路原理图来逐步解析。首先我们看电流检测放大部分,就是U1B部分,电流从R1的上端流入,下端流出。不难看出这是一个差分放大电路,也就是一个减…

    2022年5月23日
    71

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号