Python最慢!C最快!Python+C混编?结果可想而知!

  • A+
所属分类:python基础入门

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

 共享库

  使用C语言编译产生共享库,然后python使用ctype库里的cdll来打开共享库。

  举例如下,C语言代码

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

python代码为

Python最慢!C最快!Python+C混编?结果可想而知!


测试如下

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

Python代码为

Python最慢!C最快!Python+C混编?结果可想而知!

 测试如下

1
2
3
$ gcc test.c -o a.out
$ ./test_subprocess.py
9801

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

C语言代码如下

Python最慢!C最快!Python+C混编?结果可想而知!

测试如下

1
2
3
$ gcc test.c
$ ./a.out
9801

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

 为了说明如何扩展,我这里先假设一个在python下的函数功能,代码如下

Python最慢!C最快!Python+C混编?结果可想而知!

如上,希望的函数功能是,参数是任意多个数字组成的列表(姑且排除其他数据结构),返回每个列表的元素之和的乘积。

  姑且先把python代码写了,如下所示

Python最慢!C最快!Python+C混编?结果可想而知!

带上之前一直测试的平方func,这个实现相对简单,希望python写出来的func可以和C语言扩展出来的结果一致。

  先用C语言写上这些函数的实现,其中func3用上了一个表示任意多个任意长的数组的数据结构y_t,而x_t用来表示单个数组。

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

Python最慢!C最快!Python+C混编?结果可想而知!

哈哈哈哈!!!

Python最慢!C最快!Python+C混编?结果可想而知!

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: