哪些因素会成为系统的瓶颈

news/2024/10/23 7:20:43/

CPU

如果存在大量的计算,他们会长时间不间断的占用 CPU 资源,导致其他资源无法争夺到 CPU 而响应缓慢,从而带来系统性能问题,例如频繁的 FullGC,以及多线程造成的上下文频繁的切换,都会导致 CPU 繁忙,一般情况下 CPU 使用率<75% 比较合适。

内存

Java 内存一般是通过 jvm 内存进行分配的,主要是用 jvm 中堆内存来存储 Java 创建的对象。内存的读写速度非常快,但是内存空间又是有限的,当内存空间被占满,对象无法回收时,就会导致内存溢出或内存泄漏。

磁盘 I/O

磁盘的存储空间要比内存存储空间大很多,但是磁盘的读写速度比内存慢,虽然现在引入 SSD 固态硬盘,但是还是无法跟内存速度相比。

网络

带宽的大小,会对传输数据有很大影响,当并发量增加时,网络很容易就会成为瓶颈。

异常

Java 程序,抛出异常,要对异常进行捕获,这个过程要消耗性能,如果在高并发的情况下,持续进行异常处理,系统的性能会受影响。

数据库

数据库的操作一般涉及磁盘 I/O 的读写,大量的数据库读写操作,会导致磁盘 I/O 性能瓶颈,进而导致数据库操作延迟。

线程锁

当在并发编程的时候,经常会用多线程操作同一个资源,这个时候为了保证数据的原子性,就要使用到锁,锁的使用会带来上下文切换,从而带来性能开销,在 JDK1.6 之后新增了偏向锁、自旋锁、轻量级锁、锁粗化、锁消除。


http://www.ppmy.cn/news/102729.html

相关文章

从C#学习改善Java编码规范

最近在学习C#&#xff0c;感觉有些编码规范可以引入到Java项目中。 接口 C#中&#xff0c;Interface以大写字母I开头。例如&#xff0c;一个写数据的接口&#xff0c;命名为 IWriter。 Java中&#xff0c;则通常直接命名为Writer。 命名为IWriter的优势在于&#xff1a;一眼…

2023年下半年软考高级需要报班吗?

首先&#xff0c;对于软考高级考试报班与否的问题&#xff0c;需要根据自身的情况来做出决定。如果你有较强的自学能力&#xff0c;且具备丰富的实际工作经验和技术知识&#xff0c;那么不报班也完全可以自学备考。但如果你对软件工程的知识掌握程度较低&#xff0c;或者时间紧…

c语言全局变量和局部变量问题汇总

✅作者简介&#xff1a;嵌入式领域优质创作者&#xff0c;博客专家 ✨个人主页&#xff1a;咸鱼弟 &#x1f525;系列专栏&#xff1a;单片机设计专栏 &#x1f4c3;推荐一款求职面试、刷题神器&#x1f449;注册免费刷题 1、关键字static的作用是什么&#xff1f; 定义静态变…

服了呀,00后怎么这么卷....

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪18K&#xff0c;都快接近我了。后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家里条…

掌握了它,软件测试拿下25K轻轻松松!

了解软件测试这行的人都清楚&#xff0c;功能测试的天花板可能也就15k左右&#xff0c;而自动化的起点就在15k左右&#xff0c;当然两个岗位需要掌握的技能肯定是不一样的。 如果刚入门学习完软件测试&#xff0c;那么基本薪资会在7-8k左右&#xff0c;这个薪资不太高主要是因…

Reptile-master编译安装

服务端和客户端都用一个包了。 设置好信息&#xff0c;就可以编译了。make config,然后是make&#xff0c;make install。 在客户端主机上也要make config 编译客户端的命令是make client 然后是进入output目录./client就可以控制服务端了。 主要是设置几个信息&#xff0c…

CODEC 基础知识

&#xfeff; ASDOUT : ADC data output  DSDIN : DAC data input  LRCK : Left/Right data alignment clock  SCLK : Bit clock &#xfeff; MCLK 256 LRCK 或者 MCLK384 LRCK different audio data formats:  I2S …

前端面试题整理8

1.Js浏览器兼容性怎么解决&#xff1f; 解决Js浏览器兼容性问题可以采用以下方法&#xff1a; 使用polyfills填充缺失的API。使用特性检测来判断浏览器是否支持某个API&#xff0c;然后根据情况使用不同的代码。使用框架或库来处理兼容性问题&#xff0c;如jQuery、Modernizr…