代码分析可以分为静态分析和动态分析。静态分析不需要运行代码,通过分析 源代码和编译后的代码,得到静态分析结果。动态分析需要运行代码,通过记录运 行时的信息,得到动态分析结果。论文对Python程序源代码进行静态和动态的分析。 通过静态分析得到程序的控制流图,基于控制流图计算出圈复杂度;通过动态分析 获取程序的动态函数调用路径、时间性能指标、内存性能指标等信息。 Python是解释型语言,代码在运行时通过解释器翻译为机器语言,每执行一次 就要翻译一次,效率比较低。而编译型语言,先通过编译器编译为机器语言文件, 程序执行时直接运行机器语言文件,省去编译的过程,效率比较高。论文对Python 的执行过程进行研究分析,借助编译器基础架构LLVM,以函数为单位,将Python 代码进行编译,生成机器语言文件,在执行Python代码时跳过翻译过程直接执行机 器语言文件,达到优化的目的。