Kazuhisa Takei
kazuh****@gmail*****
2005年 11月 17日 (木) 12:48:18 JST
武井です。 05/11/16 に morit****@razil*****<morit****@razil*****> さんは書きました: > 結局set.cのハッシュ値のサイズについてはそのままで行くことにしました。 > (64bit環境でも空間効率に影響しそうな部分では32bit整数は積極的に使うつもりです。) > > set.cのアラインメントに依存した部分を修正した(つもりの)版をrev58でcommitしました。 > 武井さんの、 > > sizeof(((struct _sen_set_element*)0)->u)) > > という辺りのアイディアを使わせて頂いています。 > 構造体の定義そのものを変えて、64bit環境でも空間効率を落さないように > したつもりです。(うまくいけば) > なるほど。分離されたんですね。 きちんとやるならunionの部分をポインタにして格納かなぁ と思っていたんですけど、こちらのほうが空間効率もよさそうですね。 改善されそうでよかったです。 sen_set->index経由で entry のpointerをたどっていく際に、 for (i = h; ep = index + (i & m), (e = *ep); i += 1048573) { 等で 1048573 というのが出てくるんですけどこれはなんでしょうか? 質問ばかりですいません。 --- Kazuhisa TAKEI