理解性能
理解性能¶
提升计算速度的第一步是理解其中涉及的成本。在 Python 中,我们经常依赖诸如 CProfile 模块、%%prun IPython magic 命令、VMProf 或 snakeviz 等工具来理解代码的相关成本。然而,这些工具很少能很好地用于多线程或多进程代码,更不用说分布在多台机器上的计算了。我们还会遇到新的成本,例如数据传输、序列化、任务调度开销等等,这些是我们可能不习惯跟踪的。
幸运的是,Dask 调度器提供了诊断工具,帮助您理解计算的性能特征。通过使用这些诊断工具并稍加思考,我们通常可以找出复杂计算中的慢速部分。
单机和分布式调度器 配备了不同的诊断工具。这些工具深度集成到各自的调度器中,因此为一种调度器设计的工具不能直接用于另一种。
这些页面提供了四种并行代码性能分析方法
此外,如果您有兴趣理解可能发生性能瓶颈的各个阶段,您可以阅读以下内容