約 3000 のエンティティ クラスを持つアプリケーションがあります。
多数のクラスがあるため、SessionFactory オブジェクトは約 150 MB のメモリを消費し、セットアップ (すべてのクラスの処理、プロキシの生成、およびメタ モデルの構築) にほぼ 1 分かかります。
プロセスのプロファイリングを行った後、時間の 1 分が で費やされorg.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory
、半分が で費やされていることがわかりましたorg.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(EntityMetamodel, PersistentClass)
。メモリ使用量とロード時間
を削減する方法を探しています。
1 つの考えは、クラス拡張をコンパイル時に移動することでしたが、それに関する情報はあまり見つかりませんでした。
エンティティの数は私が変更できないという事実ですが、誰かがデータベース アクセス (Hibernate 以外) を処理する方法についてより良いアイデアを持っている場合は、喜んでお知らせします。SessionFactory