软件性能之进程优先级

什么是进程?

百度百科上提到“进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础”。在当代面向线程设计的计算机结构中,进程是线程的容器。一个进程必须有一个线程(主线程)。

进程优先级:优先优先,对于进程来说就是谁更厉害,谁的优势更大。这体现在抢夺系统资源的场景下。我们可以找一个看起来比较“大”的程序(这里的大指的是不要过于简单,如我公司的软件(一个可以仿真雕刻字体的软件)),跑起来,我们可以打开windows下的任务管理器,找到当前运行的程序 :

右键->设置优先级,有六种(Idle、BelowNormal、Normal、AboveNormal、High、RealTime),平常软件都是普通(normal)级别。

让跑的软件运行后仿真跑一个雕刻文件,具体就是在界面上会有一把刀在刻字,查看当前系统的cpu,不过只有3%-4%的cpu被软件使用。我把软件的优先级设置为High和RealTime,也没看见跑的刀路更快完成了或者有其他的影响。或者我通过代码的形式给软件一起来就置其进程优先级为High,启动时间也没啥变化。

那进程优先级有个锤子用?

我们假想一下,1912年4月14日23时40分左右,泰坦尼克号轮船在北大西洋航程中碰撞冰山要沉了,一部分人登上救生船得救了,一部分人不幸的死掉了,恰好有99个女人和1个男人靠着浮标漂流到一个荒岛上。我们可以做最坏的假设,这个男人很丑,一开始女人们都不喜欢这个男的,嫌弃他,但是随着时间的推移,根据人类的自私心,“有好比过没有”这个假设,开始有女人和男人来往(请读者发散思维往最坏的、浪漫的、激情的、友爱的方向想),越来越多的女人开始和男人来往,也就是说,男人拥有了99个女人的资源。把这个男人比作我们的软件,99个女人比作系统资源。假设一开始男人长得很帅气,那他很可能会马上就和某个女人进行来往,但是不会马上得到其他剩下的98个人(更少?)的青睐。换做我们的软件,就算设置了优先级很高,系统资源充足的情况下,启动时间也没有马上提高。

       后来又有一艘船路过荒岛附近时触礁了,船上装着300个强壮的强盗(不组团),300个强盗一下子挤到了岛上,在荒岛上度过了饥肠辘辘的几个月,泰坦尼克号上的男人和这些强盗相比实在是太弱了,男主一下子从拥有99个女人跌落到一个也没有的场景。还有一种情况是男主与强盗相比实力相当,大家每隔一段时间只能占用一个女人。

      为了在我的pc机上模拟上述场景,我写了一个死循环程序,然后开启了10-20个这样的进程,我的电脑就已经开始卡的不太行了。软件这时跑的刀路(雕刻的字轨迹),从一开始很顺利的变得一卡一卡的。那这时大家都是Normal级别。我就把跑刀路的软件进程优先级设置为BelowNormal或者更低的Idle,完了,刀路轨迹完全停下来了。我又把软件优先级设置为更高的High和RealTime,OK,软件跑的顺畅了。那很好啊,老大让我看的这个优先级进程还是可以用的上的嘛。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值