[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:4249] allocator_reserve?
- X-ml-count: 4252
- Subject: Re: [MD:4249] allocator_reserve?
- From: MIYASHITA Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxx>
- Date: Sun, 23 Feb 2003 22:26:28 +0900
- User-agent: Wanderlust/2.5.7 (Smooth) SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.3 Emacs/21.1 (i386-msvc-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/1.99 Alpha4 (KUROGANE)
At Sun, 23 Feb 2003 14:45:53 +0900,
MIYOSHI Masanori wrote:
> xmalloc() でメモリを確保した直後に、高い確率で、そのメモリを
> xfree() している部分があったので、xfree() せずに、後で使いまわし
> したほうが効率がいいと思って導入しました。
あー、最近のmemory allocatorは、そういうことは十分承知の上で
実装されています。
> *_allocator_reserve() で、使いまわせるメモリがあればそれを渡し、
> なければ xmalloc() します。
> *_allocator_cancel() では、reserve したメモリを、次に使いまわせる
> ように戻します。
このようにしても、通常は、殆ど効率に影響を与えないでしょう。
ま、そのうち、この辺は、xmalloc() & xfree()を使わずに、そのうち、
HeapAlloc() & HeapFree()に変えるかも。(主にheapのclarityのため)
> himi> 今はやっていませんが、LFを外部から開放するように変更したとき、
> himi> このままでは、memory leakが発生するように見えます。
>
> これは大丈夫だと思います。
> ただし、*_allocator_reserve() と *_allocator_cancel() を対で使う
> ことを前提としています。この前提が崩れればリークします。
外部から開放した場合、(外部から、mw32_delete_logical_font()を呼び出した場合)
当然この前提は崩れますよね。
from himi