首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python里一个被调用了上百万次的小函数改为C语言能不能提高效率

2013-06-25 
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++里如此短小而高频的函数都是应当内联优化的。

热点排行