欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

cpython cython_python – 优化Cython中的字符串

发布时间:2023/12/10 python 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 cpython cython_python – 优化Cython中的字符串 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我建议你在cpython.array.arrays上进行你的操作.最好的文档是C API和Cython源码,我太懒了链接了.

from cpython cimport array

def cfuncA():

cdef str a

cdef int i,j

for j in range(1000):

a = ''.join([chr(i) for i in range(127)])

def cfuncB():

cdef:

str a

array.array[char] arr,template = array.array('c')

int i,j

for j in range(1000):

arr = array.clone(template,127,False)

for i in range(127):

arr[i] = i

a = arr.tostring()

请注意,所需的操作与您对字符串的操作有很大的不同.

>>> python2 -m timeit -s "import pyximport; pyximport.install(); import cyytn" "cyytn.cfuncA()"

100 loops,best of 3: 14.3 msec per loop

>>> python2 -m timeit -s "import pyximport; pyximport.install(); import cyytn" "cyytn.cfuncB()"

1000 loops,best of 3: 512 usec per loop

在这种情况下,这是一个30倍的加速.

另外,FWIW,您可以用arr.data.as_chars [:len(arr)]替换arr.tostring(),并输入一个字节,从而取消另外几个μs.

总结

以上是生活随笔为你收集整理的cpython cython_python – 优化Cython中的字符串的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。