以下のコードは、多くの Bean を作成し、さらに使用するためにそれらをリストに追加するために使用されます。
final List<Flow<Result>> tasks = new ArrayList<>();
for (long i : manyLongs) {
tasks.add((Flow<Result>) ctx.getBean("flowBeanName", "string" number));
}
manyLongs は、約 350000 項目の ArrayList です。おそらくもっとある。このコードの実行には約 2 分かかることに気付きました。私が作成してタスクに追加しようとしている Bean はプロトタイプです。
350K の新しいオブジェクトを作成するには時間がかかることは理解できますが、2 つのフィールドの軽量オブジェクトには 2 分では少し長すぎるように思えます。デザインをまったく変更せずにこれらのスプリング オブジェクトを効率的に作成する方法はありますか?
アップデート
ルイジ・メンドーサは正しかった。コンストラクターには、オブジェクトの作成に影響を与える 2 つのポイントがありました。1 つ目は、私が遅延読み込み呼び出しだったということですが、最悪の事態は、コンストラクター内での JSON オブジェクトの逆シリアル化でした。ただし、そこに存在する必要はありません。
テストするために、Spring を使用せずに Bean を作成することを確認しました。明らかに高速ですが、Spring よりもわずか数秒高速です。