CF 8サーバーで「OutOfMemoryError:PermGenspace」エラーが発生しました。私のアプリでは、1000個のテンプレートが(テスト目的で)同じローカル変数にロードされたため、次のテンプレートがロードされると、前のテンプレートがGCで使用できるようになりますが、これは発生しません。メモリダンプを取得し、jhatで確認しました。私が見たのは、それぞれが独自のTemplateClassLoaderインスタンスを持つ数千のテンプレートをロードすることでした。TemplateClassLoader自体には、すべてのTemplateClassLoaderインスタンスへの静的参照があります(これもjhatからのものです)。おそらくこれが原因で、インスタンスはメモリに保持されているため、クラスオブジェクトをpermgenでGCにすることはできません。
この「メモリの保持」は、ロードされた後にテンプレートでcfscript関数を呼び出した場合にのみ発生します。テンプレートをロードしただけで関数を呼び出さなかった場合、クラスオブジェクトはGCされ、OOMエラーは発生しません。
TemplateClassLoaderの(表示された)静的参照で何が起こっているのか考えてみてください。