ImmGetConversionListがメモリを喰う

ImmGetConversionListで逆変換をすると、どんどんメモリ消費が増えていく。

sayray's memento」によると


ImmGetConversionListを呼び出して読み仮名を取得すると異様にメモリを食うが、リークではない様だ。アプリケーションを終了すると殆ど戻る。
一度リバースコンバートした文字列を再度ImmGetConversionListにかけてもメモリ使用量は増えない。
とあるため、IMEが変換結果をキャッシュしているのではないかと思われる。試しにIMEをMS-IME2002からATOK15に変更してみたところ、このメモリ大量消費は起こらなくなった。一方、MS-IMEを使用している場合はImmDestoryContextで逆変換に使用した入力コンテキストを削除してもメモリは開放されなかった。
ちなみに、IMEによるメモリ消費は、タスクマネージャの「メモリ使用量」だけを増やすため、アプリケーション本体のメモリ消費と見分けやすい。アプリケーション本体でメモリを使用すると「メモリ使用量」「仮想メモリサイズ」の両方が増加する。