上QQ阅读APP看书,第一时间看更新
1.3 对代码进行性能分析
在前面的例子中,我们是通过Python中的标准time
函数分别对不同的函数和组件进行计时的。虽然这种方法对于小型的程序来说比较好用,但对于调用许多不同函数的大型程序来说并不总是可行,因为大型程序中有些函数可能值得我们去并行化,但有些函数根本不值得这样做,甚至不值得在CPU上进行优化。本节的目标是,找到程序的瓶颈和热点——即使我们精力充沛,并且在每一个函数调用前后都应用了time
函数,仍有可能会遗漏一些东西;或者,会有一些我们从未考虑到的系统调用或库调用,但或许正是它们在“扯后腿”。在考虑重写代码以在GPU上运行之前,我们首先要找出哪些代码需要转移到GPU上,且必须始终牢记美国著名计算机科学家Donald Knuth的忠告——“过早的优化是万恶之源”。
我们将借助性能分析工具来查找代码中的瓶颈和热点。利用这些工具,我们很容易找出程序中哪些代码最为耗时,以便对其进行相应的优化。