2015年5月17日 星期日

Python list tail friendly

用python整理演算法資料結構的時候順便簡單驗證了一下cpython對list splice的實作,
以下兩段code從執行效率上可以看出list對尾巴方向的操作的確會比較快

# slow.py
import cProfile

def xf(num):
    x = range(num)
    while x:
        x[:10] = [] # main test snippet

cProfile.runctx("xf(100000)", globals(), locals())


# fast.py
import cProfile

def xf(num):
    x = range(num)
    while x:
        x[-10:] = [] # main test snippet

cProfile.runctx("xf(100000)", globals(), locals())