計測に使ったデータ。かなり小さい
#!/usr/bin/env python
# -*- coding: us-ascii -*-
# vim: syntax=python
#
# Copyright 2008 Noriyuki Hosaka bgnori@gmail.com
#
'''
module level document.
'''
import sys
from compiler import parse
import elementtree.ElementTree as ET
class Hoge(object):
def foo(self):
def bar(x):
return self
return bar
if __name__ == '__main__':
print "Hello World!"
print lambda x : x
- dictを使う方法: 約144倍早くなった
- memcacheを使う方法: 10 倍早くなった
- fileをつかう場合: 1.3~2.2倍早くなった
測定回数がぜんぜん足りていないので、disk seekが起こる場合はなんともいえないだろう。
また、fileが小さいのでdiskの速度の上がり方の小ささはdisk seekの占める時間によって支配されているだろう。
through putが出る状況で、処理するfileが大きければもっと向上するだろう。
memcacheはpickleの処理とmemcacheとの通信処理だろう。ファイルが大きくなれば相対的に向上率は同じか低下するかだろう。
実用ではまた別途計測が必要だ。(/usr/lib64/python2.4下を全部処理して計測するとしないとね)
今後の実装方針としては、キャッシュの構造を二層化してまずはdisk cacheして次にmemcacheするか、disk cacheしてdict cacheするとかするとよいかもです。それで起動のたびに生成するのではなく、disk cacheから読もうとすればいいのでしょう。
0 件のコメント:
コメントを投稿