黑马程序员技术交流社区
标题:
电脑为什么开多了程序会卡?(从内存角度回答)
[打印本页]
作者:
李波
时间:
2011-12-4 16:03
标题:
电脑为什么开多了程序会卡?(从内存角度回答)
本帖最后由 李波 于 2012-1-1 19:34 编辑
电脑为什么开多了程序会卡?(从内存角度回答)这个问题是我一个同学问我的,我也不是很明白,各位,谁能给个详解啊。
作者:
李荣壮
时间:
2011-12-4 16:55
本帖最后由 李荣壮 于 2011-12-4 16:56 编辑
CPU在同一个时间里只能处理一个线程, 所谓的多线程,其实就是CPU每个线程处理一段时间, 然后在不同的线程之间来回的切换 ,因为CPU的运算速度非常快, 我们几乎不需要等待, 所以看起来是在多个任务同时运行, 但这也不是绝对的,如果开的程序太多,或者程序需要的内存太大, 我们就感觉到了, 这个感觉就是"卡"(程序运行是需要内存的, 然后它们排队等待CPU的处理).
作者:
陆亚
时间:
2011-12-5 09:46
我理解的就是,内存就像我们住的房子,一个人或两个人住感觉控件很大,但人多了就会很挤。
作者:
田忠
时间:
2011-12-5 21:39
每台电脑的内存都是有限的,而每个程序的运行都需要占用内存空间!
作者:
王旭
时间:
2011-12-7 10:09
每开启一个程序,系统都要为他分配一定的内存,开的多啦。肯定内存耗尽啦吧
作者:
新空气
时间:
2011-12-7 12:35
恩,这是电脑进程调度的问题,出现等待的问题,系统运行的程序多了,处理器无法一下子处理完成或系统后台处理比较复杂有点慢也是正常的
作者:
郝锡强
时间:
2011-12-19 21:54
我认为,存到内存的数据是常用数据,不知道你学妹学过操作系统,这类似于cpu缓存的作用
作者:
张旭
时间:
2011-12-20 22:58
CPU处理程序时 都是先把程序调到内存里来处理 因为速度快 当开启的程序很多时 以至于让满载时 这时你的机子不止卡了 由于开启的程序较多 CPU也会吃不消的 速度也会慢下来
作者:
刘冠杰
时间:
2011-12-27 00:28
这个原理其实也很简单嘛,可以把内存条比作房子,CPU比作来打扫房子的清洁人员,而我们运行的程序和各种软件就相当于房子中需要打扫清理掉的东西。
你试想一下,CPU处理的速度暂且是稳定的,但是也会有特殊情况:
1.内存太小:随便几个程序就把内存空间给沾满了,这边CPU还没处理完,那边又有程序要进来,能不影响CPU的处理效率吗(平常我们看到的死机状态)
2.内存合适:CPU这时候的处理速度就算稳定,但是进来的程序太多了,相应处理的时间也加长了,时间一加长,自然就感觉处理的慢了。
作者:
黄山
时间:
2011-12-27 12:35
开的程序多了 线程就多了 cpu同时干的事就多了 cpu资源利用率就高了 自然就卡了
作者:
何荣智
时间:
2011-12-27 13:05
呵呵 学习了 确实是这个样子啊
作者:
王兴
时间:
2011-12-31 16:01
是这样的,程序运行的时候,CPU会将程序加载到内存,程序执行时CPU就在内存中读取程序指令。当内存充足时,由于只需要加载一次程序,所以耗费的时间可以忽略。
而当内存爆满的时候。有新程序运行,CPU将程序加载到内存。由于内存已满,这样就会将其他程序所占内存占用。当执行到其他程序时,由于被内存已被刚才的程序占用,内存中已经没有了此程序的指令,就从存储器中重新读取程序的指令。
由于多线程,多任务的原因,就会增加许多重新读取程序指令的环节。而由于CPU从存储器中读取数据比在内存中读取数据要慢很多很多,所以就会增加程序执行前等待的时间,
这样就会使得程序执行起来很“卡”,也就是电脑很卡
作者:
独孤飞雪
时间:
2011-12-31 16:05
可以按多线程的说法,用空间换时间吧。
作者:
阿磊-_-
时间:
2012-1-10 21:53
为什么我们卡的时候重启一下就会好很多。就是因为很多进程占用的内存没有真正意义上的得到释放的原因。每启动一个程序就会分配一块内存。有时候看似关闭的程序其实还在占用着内存。这点也体现在为什么第一次打开程序的时候很慢。退了再开就会快很多。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2