CPU是负责运算和处理的,内存是交换数据的。
当程序或者操作者对CPU发出指令,这些指令和数据暂存在内存里,在CPU空闲时传送给CPU,CPU处理后把结果输出到输出设备上,输出设备就是显示器,打印机等。在没有显示完之前,这些数据也保存在内存里,如果内存不足,那么系统自动从硬盘上划分一部分空间作为来用。但写入和读取的速度
跟物理内存差的很远很远,所以,在内存不足的时候,会感到机器反应很慢,硬盘一直在响。
512M的物理内存如果增加到2GB,你会感到电脑变得飞快。但内存512,即使你把CPU从单核换成双核,加速感觉也不明显。
如果你本来就有2G内存,再增加2G,使用起来几乎没有多少性能的改变。
在理论上,物理内存太大反而会减慢速度,因为它增加了寻址的时间。
所以家用机器推荐使用2GB-4GB足矣。
电脑是企业,内存是车间,CPU是生产线,硬盘是仓库,主板是地基,CPU速度快,生产就快,内存大,一次处理的原材料就多,
所以提高机器速度有两条路,一是,一是扩大内存,一次处理更多的信息产品,
但CPU与内存又互相制约,车间再大,CPU慢也快不起来,CPU快,但车间小,一次送来的加工材料没多少,也快不了
cpu的利用率
最简单的说法就是处理器的繁忙程度...使用率很低就很空闲...使用率很高就是很忙....当处理器使用率超过90%是基本上也就达到了满载(并不是非要达到才到满载)可能会出现卡顿的现象...达到时就开始卡了.... 在Linux/Unix下,CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指: CPU执行非系统空闲进程的时间 / CPU总的执行时间。
CPU利用率和CPU使用率是相同概念,计算方法如下:
-
需要两个进程,一个为idle进程;一个为统计进程。
-
idle进程在系统空闲时执行,每执行一次为一个计数器count加一。统计进程每秒执行一次负责计算CPU使用率,并把count清零。
-
首先要求出没有其它进程时count一秒中内由零开始的累加值max,这通常在时完成。有其它进程时idle进程执行的次数减少,count的累加值也小于max。
-
统计进程计算CPU使用率时采用以下公式: usage=(1-count/max)*100。
1.线程是CPU调度的最小单位,是不是指时间片是按线程分的? 2.如果1的答案为是,那么某个进程有超多的线程,那么这个进程将占据绝大多数CPU时间? 3.如果1的答案为否,那么时间片按进程分,单核多线程速度会比单线程慢呗,因为要线程切换?
1,进程是资源分配单位,线程是CPU调度单位,对大多数操作系统来说,时间片是线程而非进程相关的;2,不一定,线程的调度执行是有优先级的,优先级高的得到更多时间片,Linux系统中优先级高的线程时间片大于优先级低的时间片,所以进程有多个线程并不一定这个进程会占用更多CPU时间;3,这个还是跟优先级有关,如果优先级低,线程再多也不能加快执行速度,即使进程是单线程也是通过操作系统来调度的,也会分配时间片,因为后台还有许多线程在调度执行;但有一点是明确的,线程是对CPU的虚拟,进程有多个线程相当于给该进程分配了多个CPU来执行,效率肯定要高于只分配一个CPU来执行。