我继承了一些Python代码,用于创建巨大的表(最多19列宽5000行).在屏幕上绘制表格需要9秒钟.我注意到使用以下代码添加了每一行:
sTable = sTable + '\n' + GetRow()
Run Code Online (Sandbox Code Playgroud)
哪里sTable是一个字符串.
我把它改为:
sTable += '\n' + GetRow()
Run Code Online (Sandbox Code Playgroud)
我注意到桌子现在出现了六秒钟.
然后我改为:
sTable += '\n%s' % GetRow()
Run Code Online (Sandbox Code Playgroud)
基于这些Python性能提示(仍然是六秒).
由于这被称为大约5000次,它突出了性能问题.但为什么会有这么大的差异呢?为什么编译器没有在第一个版本中发现问题并对其进行优化?