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中的字符串的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java jsonp网络爬虫_JSOUP
- 下一篇: 如何进入指定文件目录_Python如何遍