0

下面的代码用于创建许多 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 分钟似乎有点太多了。有没有办法在不完全改变设计的情况下有效地创建这些弹簧对象?

更新

路易吉·门多萨是对的。我在构造函数中有两点对对象的创建产生了影响。首先是我是一个延迟加载调用,但最糟糕的是构造函数中的 JSON 对象的反序列化,尽管它不需要存在。

只是为了测试,我检查了在没有 Spring 的情况下创建 bean,虽然它明显更快,但它只比 spring 快几秒钟。

4

0 回答 0