スポンジで虎を倒せるんだよ? (you can take down a tiger with a sponge, right?)
スポンジで虎を倒せるんだよ? (you can take down a tiger with a sponge, right?)
前のエントリーで書いたdfa-multi-searchの展開形がメモリを食う原因は、 labelsで作った関数を呼んでいたことみたいです。 インライン化して、ついでに型宣言と最適化オプションもつけたところ、 だいぶ速くなってきました。 ;;; CLISP Real time: 0.427904 sec. Run time: 0.416979 sec. Space: 0 Bytes ;;; SBCL Evaluation took: 0.025 seconds of real time 0.024786 seconds of total run time (0.024786 user, 0.000000 system) 100.00% CPU 37,124,872 processor cycles 0 bytes consed このあたりまできたら、Cとも張り合えるんじゃないかと思い、
無駄に長くなりそうなので先に結論から。 バカな文字列検索と比べると速い文字列の検索のコードを書きました。 オートマトンとか使ってるからちょっと格好良くなった気分です。 (defvar *test-data* #("This ''text'' is bold sample." "This '''text''' is italic sample." "This %%text%% is torikeshi sample." "This ((text)) is footnote sample.")) (defun aho-search (str) (cond ((search "'''" str) 'italic) ((search "''" str) 'bold) ((search "%%" str) 'torikeshi) ((search "((" str) 'footnote))) (
Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは本当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、Java、Perl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く