ToDo:
今度調べるためのメモ。
i@u ~/src/ruby-1.8.1> time ruby -e 'h={}; for i in 0...1000000; h["str"]=i; end'
ruby -e 'h={}; for i in 0...1000000; h["str"]=i; end' 2.21s user 0.02s system 99% cpu 2.252 total
i@u ~/src/ruby-1.8.1> time ruby -e 'h={}; for i in 0...1000000; h[:sym]=i; end'
ruby -e 'h={}; for i in 0...1000000; h[:sym]=i; end' 1.27s user 0.00s system 100% cpu 1.267 total
i@u ~/src/ruby-1.8.1> ruby -e 'p "str".hash; p "str".object_id'
987610256
-604106804
i@u ~/src/ruby-1.8.1> ruby -e 'p :sym.hash; p :sym.object_id'
2627854
2627854
i@u ~/src/ruby-1.8.1> ruby -e 'p :a.hash; p :b.hash; p :c.hash'
2627854
2629902
2631950
これだとハッシュのヒット率落ちそうな気もするが。 要チェック。
(20:49)
#define FIND_ENTRY(table, ptr, hash_val, bin_pos) do {\
bin_pos = hash_val%(table)->num_bins;\
ptr = (table)->bins[bin_pos];\
if (PTR_NOT_EQUAL(table, ptr, hash_val, key)) {\
COLLISION;\
while (PTR_NOT_EQUAL(table, ptr->next, hash_val, key)) {\
ptr = ptr->next;\
}\
ptr = ptr->next;\
}\
} while (0)
まぁ Symbol の数なんて少ないんだから ハッシュのキーは Symbol が正解なんだろうな。
(20:52)
デバッグビルドのみ。
estmaster: estraier.c:5547: est_aidx_attr_put: Assertion `db && id >= 0 && vbuf && vsiz >= 0' failed. zsh: abort (core dumped) estmaster start casket
#0 0x080fcd41 in raise ()
#1 0x080bf910 in abort ()
#2 0x080bb1d6 in __assert_fail ()
#3 0x08079f4f in est_aidx_attr_put (db=0x818e1d0, id=-1,
vbuf=0x81ad440 "mod_estraier", vsiz=12) at estraier.c:5547
#4 0x0806e2aa in est_db_edit_doc (db=0x818d9f8, doc=0x81a4320)
at estraier.c:1946
#5 0x0808257d in est_mtdb_edit_doc (db=0x815d430, doc=0x81a4320)
at estmtdb.c:193
#6 0x08056ff4 in sendnodecmdeditdoc (clsock=32, req=0xb5a43194,
node=0x81a4160) at estmaster.c:3391
#7 0x08050020 in sendnodedata (clsock=32, req=0xb5a43194, user=0x815d1e8,
path=0x815d0d6 "web") at estmaster.c:2037
#8 0x0804d5a3 in communicate (targ=0x81e0360) at estmaster.c:1545
#9 0x0808d402 in start_thread ()
#10 0x080f76ce in clone ()
doc->id が -1 になってる。 まだセットされてない or 必要ない、たぶん。 混入は 1.2 系の est_aidx_attr_put だと思う。
(22:29)
本文やらコメントやら通じて微妙に抵抗がある部分も多いんだけど。 なぜか。
http://d.hatena.ne.jp/sumii/20060404/1144111484
(14:45)
とりあえず保守的なチャットを考える。
頻度を考えるにまぁ発言だけ頻度が高い。 あたりまえ。
発言だけ別ファイルでappendしていく。 他はワンファイルに詰め込む、が良さげか。
あとはまぁ、更新部分だけ通知するのが利口だろうな。
(02:20)
何度やっても忘れる。
each "/data/wine/borland/Bin/impdef.exe %p.def %" *.dll each "i586-mingw32-dlltool --def %p.def --dllname %p.dll --output-lib %p.a" *.dll
(08:45)
http://www9.ocn.ne.jp/~ymt/perl6/rules.html
ぐはー。
via http://www.jmuk.org/d/?path=2006/04/03#d03t03
(11:44)
http://www.houseabsolute.com/presentations/jsan-ajax-perl-ja/slide29.html
(17:23)
> time LD_PRELOAD=./nmalloc.so ruby -e 'for i in 0...100; ("aaa".."zzz").each {|i| }; end'
0x804a150(0x804a000+0x50) 0x805a000
0x807ae94(0x804a150+0x30d40) 0x809a000
0x809a007(0x8099fff+0x4) 0x80aa000
-e:1: [BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [i386-linux]
zsh: abort LD_PRELOAD=./nmalloc.so ruby -e
LD_PRELOAD=./nmalloc.so ruby -e 0.01s user 0.01s system 86% cpu 0.023 total
(11:29)
| 前 | 2025年 12月 |
次 | ||||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。