文件名称:确保性能分析成功的策略-tv图像处理详解
文件大小:7.52MB
文件格式:PDF
更新时间:2024-07-05 21:48:00
Python
2.14 确保性能分析成功的策略 性能分析需要一些时间和精力。如果你把需要测试的代码段跟你代码的主体分离, 你会有一个更好的机会去了解你的代码。然后你可以用单元测试来保证正确性,你 还可以传入精心编造的真实数据来测试算法的有效性。 记得关闭任何基于 BIOS 的加速器,因为它们只会混淆你的结果。Ian 的笔记本电 脑使用的 Intel TurboBoost 功能可以在温度足够低的时候将 CPU 暂时加至极速。这 意味着低温时运行同一段代码的速度可能比高温时要快。你的操作系统也许还控制 了时钟的速度——使用电池电源的笔记本可能比插了主电源时更积极地控制 CPU 的速度。为了建立一个更加稳定的测试配置,我们: • 在 BIOS 上禁用了 TurboBoost。 • 禁用了操作系统改写 SpeedStep(如果你有权限,你可以在你的 BIOS 中找到它) 的能力。 • 只使用主电源(从不使用电池电源)。 • 运行实验时禁用后台工具如备份和 Dropbox。 • 多次运行实验来获得一个稳定的测量结果。 • 如果可能,降至 run level 1(UNIX),确保没有其他任务运行。 • 重启并重跑实验来二次验证结果。 试着假设你代码的行为并用性能分析的结果 来证实(或证伪)你的假设。你的选择 不会改变(因为你的决定只能基于性能分析后的结果),但是你对代码的直觉了解 会提升,而这会在今后的项目中带来好处,因为你会变得更能做出高效的决定。当 然,你依然需要性能分析来验证这些高效的决定。 不要克扣准备工作。如果你在测试一段深入大型项目的代码前不先将代码分离,你 很有可能会因为一些副作用而让你的努力偏离正轨。当你进行细粒度的改动时,对 大型项目进行单元测试往往会更困难,而这又会更进一步妨碍你的努力。副作用可 能包括其他线程或进程影响了 CPU 和内存的使用以及网络和磁盘的活动,这些都 会歪曲你的结果。 第 章