Diary

Diary?

学生の研究日記だったらしいです。多分。

開発日記。

オススメの本(頂いた本):

いちばんあたらしいの2016 2/9 2:33

_9(Tue)

mmap/madvise のことをぐぐってたら、昔の日記 http://www.atdot.net/~ko1/diary/200908.html#d22 が出てきた。凄い、便利。

7年たって、同じことをしようとしているという。


この時の記録によると、MADV_DONTNEED が、対象ページを 0 clear するかは、OS に依存する、ということだった(FreeBSD 7.1 では 0 clear しなかったらしい)。

MADV_FREE を Linux に入れるって話、ちょうど https://lkml.org/lkml/2016/2/6/76 二日前の投稿がひっかかった(google 凄い)。これを見ると、やはり 0 clear しない場合がある、ということのように見える。まぁ、free してもいいよ、と OS に伝えてあげるだけだから、そりゃそうだよね(実際のページ操作は、メモリが逼迫したらまとめて行なわれる、というのが趣旨なのだから)。

だけど、jemalloc では、https://github.com/jemalloc/jemalloc/blob/fed1f9f367bec652f20ea0ccac4b21560a3b4089/src/pages.c#L153 のあたりを見ると、0 clear を前提としているような感じ。いいのかな? ああ、単に MADV_FREE を使うってだけか。

しかし、どこで定義してんのかな。

https://github.com/jemalloc/jemalloc/blob/dev/configure.ac configure でそのまんま定義してた。Linux でも、MADV_FREE が使えるなら使った方がいいと思うんだけどな。これからかな。

http://www.atmarkit.co.jp/ait/articles/1601/27/news119.html 4.5 から使えるらしい。4.5 って凄い未来感があるな。https://ja.wikipedia.org/wiki/Ubuntu の最新も 4.3 だから、当分先かな。


寄り道してしまったが、Windows でこの辺(MADV_FREE)をやりたかったのだった。どうすればいいか。多分、VirtualAlloc(MEM_RESET) でいいと思うのだけど、解放までしてくれるかどうかがよくわからない。うーん、雰囲気を見ると、なんかそれでいけそうだな。jemalloc も、そうやってるし...。

Log

2002 01 02 03 04 05 06 07 08 09 10 11 12
2003 01 02 03 04 05 06 07 08 09 10 11 12
2004 01 02 03 04 05 06 07 08 09 10 11 12
2005 01 02 03 04 05 06 07 08 09 10 11 12
2006 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 03 04 05 06 07 08 09 10 11 12
2010 01 02 03 04 05 06 07 08 09 10 11 12
2011 01 02 03 04 05 06 07 08 09 10 11 12
2012 01 02 03 04 05 06 07 08 09 10 11 12
2013 01 02 03 04 05 06 07 08 09 10 11 12
2014 01 02 03 04 05 06 07 08 09 10 11 12
2015 01 02 03 04 05 06 07 08 09 10 11 12
2016 01 02 03 04 05 06 07 08 09 10 11 12

SASADA Koichi (ko1 at atdot dot net) / Skype ID: ko1_ssd


rss