IsKoukoku() でこれは効くかも...... 最初のデータロードの部分は今
@FOX_Ro54 = map { [ (split /<>/)[5,6,7] ] } <ADFILE>;
ってなってますが,これを
@FOX_Ro54 = map {
my @a = (split /<>/)[5 .. 7];
eval { no warnings; [qr/$a[0]/, @a[1 .. $#a]]; };
} <ADFILE>;
のようにすると,ロード時に regex がプリコンパイルされて,その後の処理が軽くなりそう.
さらに,regex のエラートラップもロード時に行って,IsKoukoku() 内では
eval が不要になる,と(ダメポなのだけ除外され,他の正常なのは使われます).
# eval 内でも警告は発生するので no warnings 入れてますが,-w や use warnings してなければ不要です.
安直にテストしてみると,
% perl -we'use strict; use Benchmark; open F, $ARGV[0]; our @thr = <F>; close F; \
open F, $ARGV[1]; @_ = <F>; close F; \
our @rocka = map [(split /<>/)[5 .. 7]], @_; \
our @rockb = map { my @a = (split /<>/)[5 .. 7]; eval { no warnings; [qr/$a[0]/, @a[1 .. $#a]]; }; } @_; \
timethese(1, { a => sub { foreach my $res (@thr) { no warnings; eval { $res =~ /@$_[0]/; } foreach (@rocka); } }, \
b => sub { foreach my $res (@thr) { no warnings; $res =~ /@$_[0]/ foreach (@rockb); } } });' \
alaska/dat/1147437176.dat Rock54Data
Benchmark: timing 1 iterations of a, b...
a: 42 wallclock secs (41.94 usr + 0.00 sys = 41.94 CPU) @ 0.02/s (n=1)
(warning: too few iterations for a reliable count)
b: 42 wallclock secs (41.91 usr + 0.01 sys = 41.92 CPU) @ 0.02/s (n=1)
(warning: too few iterations for a reliable count)
% perl -we'use strict; use Benchmark; open F, $ARGV[0]; our @thr = <F>; close F; \
open F, $ARGV[1]; @_ = <F>; close F; \
our @rocka = map [(split /<>/)[5 .. 7]], @_; \
our @rockb = map { my @a = (split /<>/)[5 .. 7]; eval { no warnings; [qr/$a[0]/, @a[1 .. $#a]]; }; } @_; \
timethese(1, { a => sub { foreach my $res (@thr) { no warnings; eval { $res =~ @$_[0]; } foreach (@rocka); } }, \
b => sub { foreach my $res (@thr) { no warnings; $res =~ @$_[0] foreach (@rockb); } } });' \
alaska/dat/1147437176.dat Rock54Data
Benchmark: timing 1 iterations of a, b...
a: 42 wallclock secs (41.42 usr + 0.02 sys = 41.44 CPU) @ 0.02/s (n=1)
(warning: too few iterations for a reliable count)
b: 20 wallclock secs (20.25 usr + 0.00 sys = 20.25 CPU) @ 0.05/s (n=1)
(warning: too few iterations for a reliable count)
プリコンパイルしたのを m// 内に入れるとあまり意味ないっぽいですが,
単独で使えば二倍速ぐらいになるらしいと.
ところで,
$NG_word_ref->[0] = $matched; return $NG_word_ref;
の部分は
return [$matched, @$NG_word_ref[1 .. $#$NG_word_ref]];
のようにしないと,@FOX_Ro54 の中身を改変してしまう悪寒......
削除系呪文の bbsd 対応も行われ雪だるま以外での bbsd 利用への道も開けてきたし,
T-Banana の実験が一段落したら,このあたりもぼちぼちやりましょうってことで.
探検
bbs.cgi再開発プロジェクト Part8
レス数が950を超えています。1000を超えると書き込みができなくなります。
2007/03/09(金) 12:35:00ID:jn3Jaewt0
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- ゼレンスキー大統領「平和実現するなら大統領を辞任する用意」 ★3 [少考さん★]
- 参院選投票先、維新7%で第5党 自民29%、国民民主14%、れいわ新撰組8%… ★2 [BFU★]
- 「マジでどうかしている」モーターショーに華を添える女性コンパニオンに批判の声、本人が“猛反論”も紛糾 ★2 [少考さん★]
- 【陸上】大阪マラソンでまさかのアクシデント 先頭集団が折り返し地点誤認 中継車についていってしまい逸走 日本新ペースも解説悲嘆 [ニーニーφ★]
- 生島ヒロシ、元所属タレントが「セクハラ被害」決意の実名告発…エスカレートする “親愛の情”、突然の電話で「気持ちいいか?」 [Ailuropoda melanoleuca★]
- 【STARTO ENTERTAINMENT】大倉忠義が一般女性との結婚発表「小さな命を授かりました」SUPER EIGHT初の既婚者に [Ailuropoda melanoleuca★]
- 【悲報】イーロン・マスク、政府職員に「週報を書け。書かなきゃクビ」とジャップのクソ管理職みたいなことを言う [481941988]
- 経産省「あと15年で日本は後進国に転落する。日本企業が海外に移転し誰も日本に投資しないからです」 [819729701]
- シンプルに🏡で大丈夫です
- 【悲報】斎藤元彦陣営のネット広報担当会社が投稿したnoteで騒然★496 [931948549]
- ちんぽこシコってゴックンちょ!💦はいちんぽこシコってゴックンちょ!💦🏡
- 識者「頭が良い人ほど"短く"話す」 [168154457]