Java多核cpu多线程运行效率分析_多线程效率上限_Pe_蔡子衡的博客-程序员秘密

技术标签: java  多核  多线程  

一直以为java线程开得越多效率越高,后来知道了执行的效率和cpu核心数有关,今天试了下多核cpu下多线程的计算:

本机i5四核,分别开启1、4、10、20、40、100、400个线程做100W次,md5运算,结果如下:

全部任务执行完毕,总耗时:38368ms,threadSize:1,section:1000000
全部任务执行完毕,总耗时:17293ms,threadSize:4,section:250000
全部任务执行完毕,总耗时:15107ms,threadSize:10,section:100000
全部任务执行完毕,总耗时:15019ms,threadSize:20,section:50000
全部任务执行完毕,总耗时:16115ms,threadSize:40,section:25000
全部任务执行完毕,总耗时:22014ms,threadSize:100,section:10000
全部任务执行完毕,总耗时:40431ms,threadSize:400,section:2500

threadSize是并发的线程数,section是每个线程进行的md5运算数。

线程数在10-20之间效率最高


cpu使用情况:

单个线程:


4个线程:


10个线程:


20个线程:


40线程:


100线程:


400线程:


如图所示:

1.单线程程序也会导致多个cpu的使用率上升,猜想是因为单个线程挤占了系统其它进程的cpu资源,导致这些系统进程在其它的cpu上开销增加。

2.在10-20个线程时,cpu的上升平滑稳定,而到了上百个线程时,cpu的使用率波动比较大,可能是频繁的任务调度造成的。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cxn945/article/details/50903880

智能推荐

微信公众平台开发,自定义菜单和消息处理及其工具类封装_Linn-cn的博客-程序员秘密

微信公众平台开发,自定义菜单和消息处理及其工具类封装今天是一篇实在的实战文章哦,最近做了一个公众号平台开发,里面碰到了**自定义菜单开发、自动回复消息处理**,水平有限,自己动了动小脑子做了一些简单封装,然后记录一下????## 消息处理如果你正在看[微信开放文档]那么你应该知道微信发送的消息有多种类型,那么我们对多种类型做封装呢,并且省去那些繁杂的if

Android 自定义加载效果视图(loading)控件_实现一个安卓loadin组件_肚里能撑船的宰相的博客-程序员秘密

自定义加载框汇总AndroidProgressLayout可根据加载情况显示提示信息的控件GoogleProgressBar用Android实现了google中

flink的内存管理_flink the tuple size_young-ming的博客-程序员秘密

在大数据面前,JVM的内存结构和GC机制往往会成为掣肘1. 对象开销:在HotSpot中,每个对象占用的内存空间必须是8的倍数。这就导致每个对象占据的内存空间包含三部分:头信息(header)、类的field所占空间、对齐需要的空间(padding,由于前两个大小不够8导致),所以只有一个bool值的对象会占据16个字节,其中头占8字节,bool本身占用一个字节、padding占7个字节2...

【记录】springboot使用postman传递参数时报错:Content type 'multipart/form-data;boundary=--(略)_postman multipart/form-data;boundary=-------------_caoruichn的博客-程序员秘密

在使用postman传递参数时报以下错:Content type 'multipart/form-data;boundary=--------------------------092519905271005833411198;charset=UTF-8' not supported原因是项目配置需要使用json格式参数,因此在post方式下,在body中选择raw,然后填写json...

chrome无法连接到代理服务器,IE也上不了,但是QQ可以登陆,其他软件可以用的解决方法_Afterwards_的博客-程序员秘密

出现这个问题,是昨天做了一些逆向的东西,曾经开过WireShark,用360禁用无关的网络访问,其他的好像也没做什么WireShark只是做监听而已 也不会做什么设置上的改变所以肯定就是360动了设置了.  把他卸了是当然,不过卸载了也不会好也肯定是当然.因为他的设置已经生效,臭苍蝇甩蛆行为已经发生了.(就是这么恶心)所以你在用IE打开网页的时候 会发现有跳转什么 360.cn

随便推点

Android Studio sdk路径的修改_android studio sdk路径更换后报错_shenshizhong的博客-程序员秘密

新版本中2.1.3  Android Studio sdk路径的修改很简单只要根据图的标识操作就可以:分为两部分:  1、修改  2、查看修改结果是否成功1、修改2、查看修改后的结果:

Android技术革新之路_码仔时光的博客-程序员秘密

一、小程序开发总结又有好久没写文章了,最近又闲了下来,就写一写前段时间的总结以及计划一下自己在开发道路上还需要学习的技术。疫情的问题导致公司android和iOS业务暂停,我也顺理成章的成了小程序开发者,一开始我内心真的是抗拒的,但仔细想想能学到新技术,嗯,技多不压身淦!好在有人带,所以我上手还是很快的,简单的和android对比总结一下:优点:1、微信提供了很多的基础库和api,开发者只需关心业务逻辑和ui即可,无需过多的设计模式和结构设计2、弱类型的js搭配xml响应式的数据绑定(如wx:

Sublime Text3快捷键大全_sublime text快捷输入代码_Lisir.Tian的博客-程序员秘密

选择类Ctrl+D选中光标所占的文本,继续操作则会选中下一个相同的文本。 Alt+F3选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。 Ctrl+L选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。 Ctrl+Shift+L先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。 ...

BES2300x笔记(32) -- 优化ANC功能代码_bes anc代码_文化人Sugar的博客-程序员秘密

哈喽大家好,这是该系列博文的第三十二篇~ 篇~<<【系列博文索引】快速通道 >>一、前言通过“BES2300x笔记 – ANC降噪原理与通道配置”笔记,我们知道了,当ANC_COEF_NUM为2时,ANC会有三种模式,通过调用app_anc_key()接口可以循环切换(降噪—>通透—>关闭—>降噪)。这一篇,我们就来说说ANC功能模块以及其中存在的一些bug。

python加载模型_TensorFlow 模型载入方法汇总(小结)_weixin_39965881的博客-程序员秘密

一、TensorFlow常规模型加载方法保存模型tf.train.Saver()类,.save(sess, ckpt文件目录)方法参数名称功能说明默认值var_listSaver中存储变量集合全局变量集合reshape加载时是否恢复变量形状Truesharded是否将变量轮循放在所有设备上Truemax_to_keep保留最近检查点个数5restore_sequentially是否按顺序恢复变量,...

推荐文章

热门文章

相关标签