野良猫@がんばらない
@mskwt
@iratqq Windows だと、基本 64KiB 単位管理 (個別に PTE の Flag 設定は可能)、Cache Manager は 256KiB 単位なので、本当の意味で独立した論理 4KiB の確保って難しい
2011-02-13 01:46:55
くまぎ
@kumagi
mmapは通常mallocより遅いから使わないほうが良いのではなかろうかと勝手に思い込んでた。僕の知ってるmalloc実装はみんな「予めmmapで取ってきたメモリを高速に切り分ける」事を目的としているようだったので。
2011-02-13 01:34:31
野良猫@がんばらない
@mskwt
@kumagi OS の実装に激しく依存するかと…。まともな実装なら OS のお世話になる回数はほとんど変わらないんじゃないかな
2011-02-13 01:32:59
くまぎ
@kumagi
@mskwt え、それは4バイトのメモリ確保をmmapで1万回呼ぶかmallocで一万回呼ぶかでもあまり変わらない、ということでしょうか。
2011-02-13 01:38:39
野良猫@がんばらない
@mskwt
もし Windows で 4byte の領域を 1万回 (=10k) 確保したとして、40k回 なのでシステムの管理表的には 1度しか変わらず、アクセスされるまで変わらんのは malloc も同じなので知らん。個別の mmap なら資源不足に陥る
2011-02-13 01:45:22
いわた
@iratqq
@kumagi ここらへん読むとわかるかもしれない http://bit.ly/fH5gZS「OSからページをもらうにはどうするのか」をmmapに読み換えて
2011-02-13 01:52:06
野良猫@がんばらない
@mskwt
malloc とはそういうものだ。という割り切りができればいいのだけれども、そうじゃないので小細工…メンテ無理! → 標準 malloc を xxx malloc に変えたら性能が xxx% 向上! という話はしばらく続くのかな
2011-02-13 01:51:24