12 个解决方案
#1
这个不好说吧,具体还真不知道。
感觉应该取决于操作系统,不清楚每个操作系统中的时钟是否一致。
感觉应该取决于操作系统,不清楚每个操作系统中的时钟是否一致。
#2
可以去下CPU的手册,看看每条指令需要多少周期。
#3
这个没有办法精确估算的吧,执行的也是CPU的指令,有的时候一行C语句会生成几行CPU代码。时间片轮转这个很难说的。但是可以大概估算:
首先要知道操作系统一个时间片是多少个周期,然后看CPU手册,一个指令要多少周期,这样就可以估算了
首先要知道操作系统一个时间片是多少个周期,然后看CPU手册,一个指令要多少周期,这样就可以估算了
#4
这个不太可能吧,虽然时间片可以知道是多少,但是实际跑起来每条指令的执行周期又会受一些外界因素的影响啊,
#5
问题是,你说的几行代码,是汇编,c,c++
这个真不好估计
这个真不好估计
#6
ms自己有个调试工具,那个是驱动级别的,公司在*,一般oem厂商的程序,都是用它测试的。
确实可以估算,时间片等等数据,不过这东西的测试环境很苛刻。
即使你机器上突发跑了个定时任务,也要重新再跑一遍测试流程。
时间片级别的性能测试,应用范围一般都是服务器,对测试人员的要求很高。
突发感想,瞎说一些,哈哈哈
确实可以估算,时间片等等数据,不过这东西的测试环境很苛刻。
即使你机器上突发跑了个定时任务,也要重新再跑一遍测试流程。
时间片级别的性能测试,应用范围一般都是服务器,对测试人员的要求很高。
突发感想,瞎说一些,哈哈哈
#7
具体代码不同就有不同。不过以现在的机器来说那是远远不止“几行代码”的。
一般一条汇编指令的执行时间不过几个CPU周期,以现在的主频来看也就是大多在1ns以下。如果一个时间片有15ms的话,足够执行上万行汇编代码了。
一般一条汇编指令的执行时间不过几个CPU周期,以现在的主频来看也就是大多在1ns以下。如果一个时间片有15ms的话,足够执行上万行汇编代码了。
#8
刚估算了下,对与线程调度,时间片内大约执行了1百万条代码,估算过程如下:
一个主频为2GHZ的CPU时钟周期是1/2G = 5*10^(-10)s = 5*10^(-7)ms
假设一条汇编指令需要6个时钟周期,同时假设一行(c语言)代码需要3条汇编指令,这样执行一行代码的时间就是3*6*5*10^(-7)ms = 9*10^(-6)ms,约等于10*10^(-6)。
从网上看到线程的一个时间片大约20ms。于是一个时间片内执行的代码行数 = 20/(10*10^(-6))= 1*10^(6),即一个时间片内可执行1百万条代码。估算的数值好大啊,不知道对不对,请网友指证。
一个主频为2GHZ的CPU时钟周期是1/2G = 5*10^(-10)s = 5*10^(-7)ms
假设一条汇编指令需要6个时钟周期,同时假设一行(c语言)代码需要3条汇编指令,这样执行一行代码的时间就是3*6*5*10^(-7)ms = 9*10^(-6)ms,约等于10*10^(-6)。
从网上看到线程的一个时间片大约20ms。于是一个时间片内执行的代码行数 = 20/(10*10^(-6))= 1*10^(6),即一个时间片内可执行1百万条代码。估算的数值好大啊,不知道对不对,请网友指证。
#9
是2百万行,刚马虎了。
#10
这个没有意义啊。我们看到的汇编指令其实还要分解成微指令的。所以不好解释。而且现代cpu有流水线。
#11
估算好像不对,估算值偏大了,有木有精通硬件的估算下
#12
假设一条汇编指令需要6个时钟周期,同时假设一行(c语言)代码需要3条汇编指令,这样执行一行代码的时间就是3*6*5*10^(-7)ms = 9*10^(-6)ms,约等于10*10^(-6)
不知道LZ到底要干嘛,看样子是在估算时间片可以跑几行C语言代码诶,,,,,这样的话,去看看有几种C语句的汇编只要3条汇编的啊?
然后如果要抛弃掉现代CPU上的流水线超线程超标量等技术的话,一个时间片执行了多少条汇编代码还是可以估算的,根据CPU来算的,不过时间片还是对于OS而言的,不同的OS是不同的。。
#1
这个不好说吧,具体还真不知道。
感觉应该取决于操作系统,不清楚每个操作系统中的时钟是否一致。
感觉应该取决于操作系统,不清楚每个操作系统中的时钟是否一致。
#2
可以去下CPU的手册,看看每条指令需要多少周期。
#3
这个没有办法精确估算的吧,执行的也是CPU的指令,有的时候一行C语句会生成几行CPU代码。时间片轮转这个很难说的。但是可以大概估算:
首先要知道操作系统一个时间片是多少个周期,然后看CPU手册,一个指令要多少周期,这样就可以估算了
首先要知道操作系统一个时间片是多少个周期,然后看CPU手册,一个指令要多少周期,这样就可以估算了
#4
这个不太可能吧,虽然时间片可以知道是多少,但是实际跑起来每条指令的执行周期又会受一些外界因素的影响啊,
#5
问题是,你说的几行代码,是汇编,c,c++
这个真不好估计
这个真不好估计
#6
ms自己有个调试工具,那个是驱动级别的,公司在*,一般oem厂商的程序,都是用它测试的。
确实可以估算,时间片等等数据,不过这东西的测试环境很苛刻。
即使你机器上突发跑了个定时任务,也要重新再跑一遍测试流程。
时间片级别的性能测试,应用范围一般都是服务器,对测试人员的要求很高。
突发感想,瞎说一些,哈哈哈
确实可以估算,时间片等等数据,不过这东西的测试环境很苛刻。
即使你机器上突发跑了个定时任务,也要重新再跑一遍测试流程。
时间片级别的性能测试,应用范围一般都是服务器,对测试人员的要求很高。
突发感想,瞎说一些,哈哈哈
#7
具体代码不同就有不同。不过以现在的机器来说那是远远不止“几行代码”的。
一般一条汇编指令的执行时间不过几个CPU周期,以现在的主频来看也就是大多在1ns以下。如果一个时间片有15ms的话,足够执行上万行汇编代码了。
一般一条汇编指令的执行时间不过几个CPU周期,以现在的主频来看也就是大多在1ns以下。如果一个时间片有15ms的话,足够执行上万行汇编代码了。
#8
刚估算了下,对与线程调度,时间片内大约执行了1百万条代码,估算过程如下:
一个主频为2GHZ的CPU时钟周期是1/2G = 5*10^(-10)s = 5*10^(-7)ms
假设一条汇编指令需要6个时钟周期,同时假设一行(c语言)代码需要3条汇编指令,这样执行一行代码的时间就是3*6*5*10^(-7)ms = 9*10^(-6)ms,约等于10*10^(-6)。
从网上看到线程的一个时间片大约20ms。于是一个时间片内执行的代码行数 = 20/(10*10^(-6))= 1*10^(6),即一个时间片内可执行1百万条代码。估算的数值好大啊,不知道对不对,请网友指证。
一个主频为2GHZ的CPU时钟周期是1/2G = 5*10^(-10)s = 5*10^(-7)ms
假设一条汇编指令需要6个时钟周期,同时假设一行(c语言)代码需要3条汇编指令,这样执行一行代码的时间就是3*6*5*10^(-7)ms = 9*10^(-6)ms,约等于10*10^(-6)。
从网上看到线程的一个时间片大约20ms。于是一个时间片内执行的代码行数 = 20/(10*10^(-6))= 1*10^(6),即一个时间片内可执行1百万条代码。估算的数值好大啊,不知道对不对,请网友指证。
#9
是2百万行,刚马虎了。
#10
这个没有意义啊。我们看到的汇编指令其实还要分解成微指令的。所以不好解释。而且现代cpu有流水线。
#11
估算好像不对,估算值偏大了,有木有精通硬件的估算下
#12
假设一条汇编指令需要6个时钟周期,同时假设一行(c语言)代码需要3条汇编指令,这样执行一行代码的时间就是3*6*5*10^(-7)ms = 9*10^(-6)ms,约等于10*10^(-6)
不知道LZ到底要干嘛,看样子是在估算时间片可以跑几行C语言代码诶,,,,,这样的话,去看看有几种C语句的汇编只要3条汇编的啊?
然后如果要抛弃掉现代CPU上的流水线超线程超标量等技术的话,一个时间片执行了多少条汇编代码还是可以估算的,根据CPU来算的,不过时间片还是对于OS而言的,不同的OS是不同的。。