

Additionally, the user can also shrink their database by manually purging all caches via Edit->Other->Reset decompiler information., the All caches checkbox. Regardless of caches, Hex-Rays will still re-analyze previously seen functions sometimes.

That said, these are just caches they can be evicted for reasons such as the user changing the type of a function or global data item used by the cached function.

The past few versions of Hex-Rays have introduced caches for the decompilation results, particularly the mba_t and cfunc_t structures from the SDK, to speed up displaying decompilation for functions that have recently been analyzed. That's because Hex-Rays often decompiles the same function more than once - numerous times, actually - throughout the course of the user's analysis session. You have probably noticed that Hex-Rays might - or might not - pause noticeably when decompiling a large function that you have already decompiled some time ago. It sounds like you know how to use Hex-Rays to a non-trivial extent.
