对不起,没有具体的问题,我需要一种方法来计算我的算法所需的时钟周期的确切数量,用C语言编写,->我尝试了clock()和Windows特定的函数,如QueryPerformanceCounter(),它们都没有在每次运行时给我精确的时钟周期。每次运行时,我都得到完全不同的值。
**如果你建议任何方法来找到执行时间的时钟周期,这不会改变每次运行,这将是非常有帮助的。
硬件:我的是intel i5处理器,运行在windows10操作系统下。
lymnna711#
除非你在一个非常原始的处理器上运行你的程序,没有操作系统也没有设备驱动程序的干扰,否则就没有 * 你的算法所需要的确切的时钟周期数 * 这样的事情。在i5处理器上运行Windows 10绝对不合格。你的程序执行所需的时间,甚至是时钟的数量都取决于无数的因素,这些因素在很大程度上使它不可预测:
所选程序片段的精确定时仍然是可能的,但不能降低时钟计数,并且需要高级技能来尝试和防止上述问题和其他问题的干扰。重复大量的短测试并保持最佳时间是一个好的开始,但总是会包含一定范围的不确定性,因此精度有限。必须研究算法的更重要方面:时间和空间复杂性,最佳、平均和最差情况,以及最重要的正确性和范围限制。
1条答案
按热度按时间lymnna711#
除非你在一个非常原始的处理器上运行你的程序,没有操作系统也没有设备驱动程序的干扰,否则就没有 * 你的算法所需要的确切的时钟周期数 * 这样的事情。在i5处理器上运行Windows 10绝对不合格。
你的程序执行所需的时间,甚至是时钟的数量都取决于无数的因素,这些因素在很大程度上使它不可预测:
所选程序片段的精确定时仍然是可能的,但不能降低时钟计数,并且需要高级技能来尝试和防止上述问题和其他问题的干扰。重复大量的短测试并保持最佳时间是一个好的开始,但总是会包含一定范围的不确定性,因此精度有限。
必须研究算法的更重要方面:时间和空间复杂性,最佳、平均和最差情况,以及最重要的正确性和范围限制。