主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

makoを使うかどうか pylons

                
tags:
pylonsを使ってあるものを作っているのだけど、makoを使うべきか悩んだ。

makoはサーバー上でHTMLを生成するのに便利なようだけど、僕の作っているものはサーバー側でごにょごにょする必要があるほど複雑ではないと思う。javascriptによってクライアント側でHTMLを生成するものをすでに完成させているし。

まだお世話になるものでもないかなぁ。と思いつつ、いちおう、makoの売り文句である高速性を置換で試してみた。makoを使わない%sへの代入やre.subと比べてどうなのか。


from mako.template import Template
import time
import re

total=[0, 0, 0]

for k in range(5):

t=time.time()
for l in range(5000):
hoge1 = u'Hello, %s world'
hoge1 = hoge1 %('absurd')
print time.time()-t
total[0]+=time.time()-t

t=time.time()
for l in range(5000):
hoge3 = "Hello, world"
hoge3 = re.sub('', 'absurd', hoge3)
print time.time()-t
total[1]+=time.time()-t

t=time.time()
for l in range(5000):
hoge2 = Template("Hello, ${name} world")
hoge2 = hoge2.render(name="absurd")
print time.time()-t
total[2]+=time.time()-t

print '\n'

print total


%sに代入 0.039999961853027344s
re.subでキーワードを置換 0.089999914169311523s
makoでrender 39.126000165939331s


ひな形をファイルから読み込みむ場合

from mako.template import Template
import time
import re

def fileopen(filename):
f=open(filename)
str=f.read()
f.close()

return str


total=[0, 0, 0]
for k in range(5):

t=time.time()
for l in range(5000):
hoge1 = fileopen('01.txt') #"Hello, %s world"
hoge1 = hoge1 %('absurd')
print time.time()-t
total[0]+=time.time()-t

t=time.time()
for l in range(5000):
hoge3 = fileopen('02.txt') #"Hello, world"
hoge3 = re.sub('', 'absurd', hoge3)
print time.time()-t
total[1]+=time.time()-t

t=time.time()
for l in range(5000):
hoge2 = Template(filename="03.txt") #"Hello, ${name} world"
hoge2 = hoge2.render(name="absurd")
print time.time()-t
total[2]+=time.time()-t

print '\n'

print total



%sに代入 1.1100001335144043s
re.subでキーワードを置換 1.2950007915496826s
makoでrender 42.909999132156372s

ひな形をファイルから読み込むと、%s置換やre.subを使った方法では処理時間が数十倍に伸びた。一方でmakoは1割増し程度。それでもmakoを使った場合は時間がかかっている。

とりあえず複雑なことはまだしないので、makoはおいておく。
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。