Python与GO的性能测试,结果让人惊掉下巴

[复制链接]
1292|3
手机看帖
扫描二维码
随时随地手机跟帖
zhouzpd|  楼主 | 2019-4-27 12:43 | 显示全部楼层 |阅读模式

今天放假一天,闲来无事,突发奇想,测试python函数调用的性能

本来想找找Python有没有类似C的inline内敛函数,结构貌似没有。

找到一个内敛C的inline模块,但没有装VC,编译不了。有兴趣的同学可以试试。

测试功能,执行若干次除10并计算和。

同时编译go为dll,测试了调用外部go性能。

1、调用函数
    sum = 0
    start = time()
    for i in range(test_times):
        sum += div_10(i)
    print("sum=%d" % sum, time() - start)
2、不调用函数
    sum = 0
    start = time()
    for i in range(test_times):
        sum += i // 10
    print("sum=%d" % sum, time() - start)
3、lambda匿名函数
    sum = 0
    f = lambda x: x // 10
    start = time()
    for i in range(test_times):
        sum += f(i)
    print("sum=%d" % sum, time() - start)
4、调用go除10函数
    sum = 0
    start = time()
    for i in range(test_times):
        sum += go_div_10(i)
    print("sum=%d" % sum, time() - start)
5、调用go除10计算和函数
    sum = 0
    start = time()
    sum = go_sum_div_10(test_times)
    print("sum=%d" % sum, time() - start)

以上执行
test_times = 100000

结果:
1、sum=499950000 0.03291058540344238
2、sum=499950000 0.018947362899780273
3、sum=499950000 0.026964902877807617
4、sum=499950000 0.4058797359466553
5、sum=499950000 0.0009963512420654297

python开销:调用函数>匿名函数>直接使用
结果意料之中。

最令人吃**的是:
调用go除10函数效率慢20倍,而调用go
除10计算和函数效率高200倍。

可见调用外部dll过程是十分消耗资源的,但对计算密集型,go编译的dll性能有大幅提升。


性能测试.zip (1.03 MB)

使用特权

评论回复

相关帖子

zhouzpd|  楼主 | 2019-4-29 23:56 | 显示全部楼层
111111

使用特权

评论回复
zhouzpd|  楼主 | 2019-4-29 23:57 | 显示全部楼层
111111

使用特权

评论回复
飞翔的鱼2019| | 2019-5-6 17:11 | 显示全部楼层

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

330

帖子

1

粉丝