我有一些Python源代码,可以处理一系列的数字(比如大约10000个浮点数字),并对这些数字进行各种计算,包括纽比·利纳格·诺姆例如。在
在我们最近开始从C#UI(通过IronPython从C#运行这个Python代码)开始使用之前,运行时并不是一个问题。我提取了一组函数调用(如第一段所述),发现与Python2.7相比,这段代码在IronPython中的运行时间要长4倍(这是在排除C#/IronPython中的启动/设置时间之后)。在python2.7中,我使用C秒表来处理重复的IronPython调用,并在python2.7中使用timeit模块处理execfile(因此Python时间结果包括更多操作,如加载文件、创建对象。。。而C没有)。前者需要大约4.0秒,后者大约需要0.9秒。在
你会期待这种不同吗?有什么办法解决这个问题吗?其他意见?在
编辑:
下面是一个简单的代码示例,它在我的机器上运行速度大约慢10倍(Python 2.7为4秒,IronPython为40秒):n = 700
for i in range(n-1):
for j in range(i, n):
dist = np.linalg.norm(np.array([i, i, i]) - np.array([j, j, j]))