2010年12月30日木曜日

CoreDataのsaveは遅い?

iPhoneでブログのエントリーを取得・表示するアプリを作っていて。
データの保存にはCoreDataを使ってたんだけど、これが恐ろしく遅い。

測ってみると、1件処理するのにだいたい0.05秒かかる。
100件だと5秒。500件だと25秒。1000件だと50秒。
さすがに、これだけ待たせるのはいくらなんでもまずい。

それまではひとつのループの中で挿入と保存をしてたのを、
別々のループに分けてみたら早くなった。
1件処理するのにだいたい0.01秒かからないぐらい。
前の5倍以上の早さ!かかる時間が5分の1!

早くなったのはよかったけど、理由がわからない。
どんなコマンドが呼ばれてるかとか見てみるといいのかな。
ソースとはまた後日掲載します。多分。

2010年12月23日木曜日

Pythonで全角数字を半角数字に変換する方法

Pythonで全角数字を半角数字に変換する方法。

import unicodedata

str = u'123'
res = unicodedata.normalize('NFKC', str)

こんな感じ。
Cookpadのレシピをとってきて何かする、みたいなときに使える。
大3とか大3とか、統一されてないから。