つれづれ日記
ぶいよんブイロク?
GA | GW | G | A / amL | S | つれづれ日記 RSS: RDF Site Summary
最新 | 2010年 8月 7月 6月 5月 4月 3月 | もっと前 [ 携帯版 | IPv6版 ]
この日記はよしいまいち コメント

<2007年09月17日
2007年09月19日>

UTF-8 で正規表現を使うとき、//iのように 大文字小文字を無視するオプションをつけると、秒単位で 時間がかかった

UTF-8 で正規表現を使うとき、//i のように 大文字小文字を無視するオプションをつけると、秒単位で 時間がかかった 。/\n+<p>\n/iのように 1文字の英文字のために //i を使っていた ところがあったが、展開して /\s+<[pP]>\s+/ としたら、気にならない速度で処理されるようになった。

また、短い文字列に対して//を何度も呼ぶときに、 処理時間がかかるように感じられた。長い文字列(10KBほど)を正規表現で 検索しても、それほど時間がかからなかった。正規表現のコンパイルに 時間がかかるのか?>Perl 5.8.8。

sprintf("%02d", $d);という書き方ももったいないので ($d < 10) ? "0" . $d : $d;という書き方にした。 ただし、処理速度に関して、この影響はあまりなかったもよう。

なんとなく、配列の添え字($arr[$i])も遅そうだったので、 配列のエレメント (foreach $element (@arr)) を 直接扱うようにした。

年月日の文字列を作ろうとして、 $y年$m月としたが、$y と "年" が連続した変数として みなされたようで、$y が展開されなかった。そのため、 ${y}年${m}月とした。UTF-8でも変数が記述できる弊害か?

どこが遅いか調べるために、 perl のスクリプト中に時刻を表示するデバッグ文を入れまくった。 いやはや。

  • Twitter
  • はてなブックマークに追加
  • Google
  • Yahooブックマーク
  • Facebook
| 2007年09月18日(火)| くもり | 3/3 | カテゴリ: Perl Regex

自分の日記サイトをようやくUTF-8に変更

自分の日記サイトをようやくUTF-8に変更 。 EUC-JPやSJISはめんどうなので捨て、全部UTF-8にした。

ただし、元記事のみはEUC-JPのまま残した。その他の関連ファイルと Perl のソースコードはすべて UTF-8 にした。vi でも簡単に 編集できるので、EUC-JP はたぶん、もういらない。

EUC-JP で読み込まなければならないファイルはopen()後に、 binmode(INFILE, ":encoding(euc-jp)");するようにした。 圧縮ファイルは binmode(INFILE, ":raw");するようにした。 バイナリを出力する場合は binmode(STDOUT, ":raw");するようにした。 open(FD, MODE, PATH) の構文を書いてみたが、どうもPerlが通らなかった。 (Perl 5.8.8)

  • Twitter
  • はてなブックマークに追加
  • Google
  • Yahooブックマーク
  • Facebook
| 2007年09月18日(火)| くもり | 2/3 | カテゴリ: Perl Blog

夜は暑いくらいだったが、朝になって涼しくなった 。

  • Twitter
  • はてなブックマークに追加
  • Google
  • Yahooブックマーク
  • Facebook
| 2007年09月18日(火)| くもり | 1/3 | カテゴリ: つれづれ
<2007年09月17日
2007年09月19日>

お便りはこちらへ (sshida@gmail.com)
見出し一覧は RSS で つれづれ日記 RSS: RDF Site Summary