与其他语言相比,有很多关于 python 性能的一般性问题。我有更具体的例子:在 python 和 c# 中编写了两个简单的函数,都检查 int 数是否为素数。
Python:
import time
def is_prime(n):
num =n/2
while num >1:
if n % num ==0:
return 0
num-=1
return 1
start = time.clock()
probably_prime = is_prime(2147483629)
elapsed = (time.clock() - start)
print 'time : '+str(elapsed)
和 C#:
using System.Diagnostics;
public static bool IsPrime(int n)
{
int num = n/2;
while(num >1)
{
if(n%num ==0)
{
return false;
}
num-=1;
}
return true;
}
Stopwatch sw = new Stopwatch();
sw.Start();
bool result = Functions.IsPrime(2147483629);
sw.Stop();
Console.WriteLine("time: {0}", sw.Elapsed);
和时间(这对我作为 python 初学者来说是个惊喜:)):
蟒蛇:121s;时间:6s
你能解释一下这个巨大的差异来自哪里吗?