注册 登录
编程论坛 C语言论坛

程序运行时间长短的探讨

自学的数学 发布于 2020-09-10 17:31, 2199 次点击
当电脑的硬件设施和软件同时确定后,用它来单独编译运行代码A所需时间为a小时,单独编译运行代码B所需时间为b小时,现在让它同时运行代码A和B,请问所需时间是多少?
7 回复
#2
nosnoy2020-09-14 14:56
我感觉是A
#3
lin51616782020-09-14 17:09
无法确定
和架构有一定关系
无限简化我们考虑真空中的球形电脑
如果有多个核心 然后刚刚好运行的时候就是2个进程独立占用核心
那么运行时间可能接近 max(a,b)

如果一个核心 不停切换时间片
那还需要考虑切换时间片花的时间 和 重新刷缓存的情况
这时候只能说时间大于 a+b
至于是多少就看运气了
#4
lin51616782020-09-14 17:20
哦 也不能单独考虑核心
一些资源可能导致运行时间变长
比如 都需要写文件 这时候涉及到硬盘IO
测试出运行时间 a 和 运行时间b 是进程单独占用硬盘读写带宽
读写时间延长会导致原先测试得到的运行时间参考价值下降

既然说到那就多提一下 硬盘对应对这种情况存在巨大差异
原先只有1个进程 读写操作可能是顺序读 一般来说会 相对快
现在2个进程同时操作 那么读写硬盘的操作也就变成随机读 一般来说 相对慢
当然这个和硬盘的种类还有关系

总之你观察的角度越多 结论就越暧昧

#5
a69234032020-09-17 21:41
应该长的那个把
#6
八画小子2020-09-18 12:30
无法确定,因为即便是很简单的一段循环代码,如果出现死循环了,还是无法运行结束,运行时间就成无限大了。
#7
自学的数学2020-09-18 16:34
前提说的很清楚:单独编译运行代码B所需时间为b小时,也就是可以正常编译和运行,并且运行所消耗的时间是b小时,所以不成在出现死循环的情况。
#8
nosnoy2020-09-23 15:19
回复 7楼 自学的数学
现在的电脑暂时只是电脑
假设程序a:算 a+b的值
程序b:算(a+b)/c的值
这个运行程序A+程序B的时间 也不可能是B的时间,因为电脑不知道下一个程序需要a+b的值,又或者下一个程序不知道上一个程序已经算出来a+b的值

 可能以后会有吧
 暂时是大于A+B的时间
1