
php中sleep()函数会不会大量销号系统内存或者CPU
2个回答
展开全部
会。
正常情况下php以最快速度执行完脚本,将执行结果传给浏览器。你要考虑有很多用户访问你网站的情况,因为执行脚本的时候被sleep了,导致每个用户浏览网页的时候php都需要更长的时间去执行你的脚本,而脚本执行完毕之前内存是一直被php引擎占用的。所以当访问用户多的时候,就会导致有很多php引擎的实例同时运行,占用很多内存,但是这些php引擎却受到脚本的指使而在那边sleep(说得粗俗一点就是占着茅坑不拉屎)(正常情况下是执行完以后内存就释放了)。就好像八行道的大马路,如果只有一个司机车子停在中间然后睡觉,其他道路暂时还能通;但是如果有八辆车的司机并排停在路中间睡觉,这马路就不要想畅通了
cpu的话……好像影响不大,最多就是操作系统在调度进程线程的时候要多检查几个而已,没感觉。
正常情况下php以最快速度执行完脚本,将执行结果传给浏览器。你要考虑有很多用户访问你网站的情况,因为执行脚本的时候被sleep了,导致每个用户浏览网页的时候php都需要更长的时间去执行你的脚本,而脚本执行完毕之前内存是一直被php引擎占用的。所以当访问用户多的时候,就会导致有很多php引擎的实例同时运行,占用很多内存,但是这些php引擎却受到脚本的指使而在那边sleep(说得粗俗一点就是占着茅坑不拉屎)(正常情况下是执行完以后内存就释放了)。就好像八行道的大马路,如果只有一个司机车子停在中间然后睡觉,其他道路暂时还能通;但是如果有八辆车的司机并排停在路中间睡觉,这马路就不要想畅通了
cpu的话……好像影响不大,最多就是操作系统在调度进程线程的时候要多检查几个而已,没感觉。
追问
等待的时间越长消耗内存越多吗?
追答
看你的网站有多少人访问。如果只有一个人访问,那等待多久都没有区别。如果只有两个人访问,也差不多:如果两个人同时访问,那么就占两份脚本需要的私有内存空间。但是假设你有100个人访问,这100个人并不是同时;每次运行脚本本来需要0.5秒,每0.3秒就有一个人上来访问,那么最多可能就占你2份的私有内存空间。你现在加了一个sleep,导致运行脚本需要1秒,还是每0.3秒就有一个人上来访问,这样就变成最多可能占你4份的私有内存空间……
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询