在尝试导入和使用 SymPy 时,我在 VS2010 中遇到了 IronPython 的一些性能问题。
我有一个 IronPython 测试项目,其中包含以下代码:
import time
print 'StandaloneIronPython'
startTime = time.time()
from sympy import *
importTime = time.time() - startTime
print 'Import time = %f' % importTime
startTime = time.time()
for x in (x/10.0 for x in xrange(-100,100)):
(x**2-2*x)
numericsTime = time.time() - startTime
print 'Basic numerics time= %f' % numericsTime
startTime = time.time()
for x in (x/10.0 for x in xrange(-100,100)):
N(x**2-2*x)
sympyTime = time.time() - startTime
print 'SymPy time = %f' % sympyTime
raw_input('Press enter to continue...')
SymPy已作为鸡蛋下载并安装;我的“IronPython 2.7\Lib\site-packages”文件夹位于项目搜索路径中。
如果我通过“调试 > 开始调试”运行程序,我大概会得到以下信息:
StandaloneIronPython
Import time = 12.090019
Basic numerics time= 0.015594
SymPy time = 2.230804
Press enter to continue...
但是,如果我通过“Debug > Start without Debugging”运行程序,我会得到大约:
StandaloneIronPython
Import time = 2.199600
Basic numerics time= 0.015602
SymPy time = 0.140404
Press enter to continue...
我得到了大约 5 倍的导入速度和超过 10 倍的运行速度 sympy。
那么,如果 IronPython 一直在调试库代码,我如何才能获得良好的性能呢?
- 有没有一种方法可以将 SymPy 捆绑为库、程序集或其他可以快速执行的东西?
- 有没有办法告诉 VS2010 不要调试 SymPy 的代码?
- 有没有其他类型的解决方案?