![]() |
1
3
处理过程中出现突然峰值的原因可能是IO、中断、计划进程等。 考虑到如此低的延迟/处理时间操作,这种峰值非常常见。在我看来,你可以考虑他们,因为上述任何原因(可能还有更多)。最简单的解决方案是使用更多输入多次运行同一个实验,并取平均值作为最终考虑。 要回答您关于检查/确认尖峰来源的问题,您可以尝试以下内容:,
使用此设置运行实验并检查行为。 |
![]() |
2
2
这是一件令人讨厌的事情,你正在试图弄清楚,我甚至不会尝试,因为达成具体的结论是困难的。 一般来说,应该运行一个循环 许多的 迭代(我认为100次似乎太小了),然后取图像处理的平均时间。 这将排除任何可能影响程序性能的意外外部事件。 检查“CPU内是否有其他任务开始运行”的典型方法是运行一次程序,并标记产生该峰值的图像。例如,图像2、4、5和67处理时间过长。再次运行程序几次,并再次标记哪些图像产生尖峰。 如果相同的图像产生这些尖峰,那么它不是由另一个外部任务引起的。 |
![]() |
3
1
实时操作系统(RTO)保证了这些延迟。它与Windows或Linux完全不同。 但是,即使在通用操作系统上,也可以对延迟采取一些措施。 1、避免系统调用一旦你要求你的操作系统在磁盘上读写一些东西,就不能保证会有任何延迟。因此,避免关键路径上的任何系统功能:
如果你的代码库很大,那么像
2.避免上下文切换Windows上的多线程是抢占式的。这意味着,有一个系统调度程序,它可以随时停止你的线程,并在你的CPU上调度另一个线程。如前所述,RTOS允许避免此类上下文切换,但您可以采取一些措施:
有这样的工具
3、避免其他不确定性特征几乎没有其他意外延迟的来源:
希望这有帮助。 |
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |