python里一个被调用了上百万次的小函数改为C语言能不能提高效率
python里一个被调用了上百万次的小函数改成C语言能不能提高效率?我有一个python程序,有一个函数是求两个向
python里一个被调用了上百万次的小函数改成C语言能不能提高效率?
我有一个python程序,有一个函数是求两个向量的内积
def product(v1, v2):
sum = 0
for x,y in zip(v1,v2):
sum += x*y
return sum
该函数被调用180万次,占了程序运行时间的90%+,改成C语言的能不能提高效率?我上网搜了一下,改成C语言模块的话,链表里的元素也得用PyTuple_GetItem一个一个取出来,所以是不是也提高不了效率,哪怕一点点? Python C
[解决办法]1.可以提高
2.你这个也不是优化写法
直接写 sum((x*y for x,y in zip(v1,v2))) 效率肯定比你原来的高
[解决办法]关键路径上的代码当然值得优化,可以用C来实现,提升不止一点点。
楼上说效率一定高不敢认同,这得看Python的sum调用损耗是否可以忽略,这在C/C++里如此短小而高频的函数都是应当内联优化的。