cpython cython_python – 优化Cython中的字符串
我建議你在cpython.array.arrays上進(jìn)行你的操作.最好的文檔是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
在這種情況下,這是一個(gè)30倍的加速.
另外,FWIW,您可以用arr.data.as_chars [:len(arr)]替換arr.tostring(),并輸入一個(gè)字節(jié),從而取消另外幾個(gè)μs.
總結(jié)
以上是生活随笔為你收集整理的cpython cython_python – 优化Cython中的字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jsonp网络爬虫_JSOUP
- 下一篇: 服务器租用单线、双线、bgp 相比有哪些