我的任务是预测我们的 DSP 代码的性能,原因很明显(缩短上市时间、增加选择芯片的确定性等)
考虑一个由许多具有时序结果的子系统组成的系统(以秒为单位)(滤波器、增益、动态处理等)具有时钟速率(秒/样本)和采样率(样本/秒)
我们最初的假设是:
即 CPU 利用率估计应该等于 top -d 1` 的输出。
但是,这不符合真实数据!它总是被低估。
我们通过将每个子系统包装在测试工具中并计时它们的执行来测量各个子系统。我们的系统在单线程和单核上运行。
根据平台的不同,我们可以达到 5% 到 20% 以内,但总是低估顶部。
为什么是这样?
我在性能文献中找不到任何符合我们假设的东西,但解释如此之多,以至于几乎就像“我们真的不知道为什么我们不能预测性能”。
我开始认为该解决方案在早期开发期间像鹰一样进行监控,并在我们发现新解决方案时缩减系统复杂性。
但是,如果我们能够提前设计一个具有性能要求的系统,那将是非常棒的。我们的要求很大程度上取决于“这比供应商的旧东西更好,而且我们以前使用旧系统的东西更好”。