【发布时间】:2012-04-01 15:13:52
【问题描述】:
对象创建是我的应用程序中的一个瓶颈。
我认为为对象创建添加更多线程会使情况变得更糟,因为对象创建是一项 CPU 密集型任务,对吧?
那么,如何提高性能呢?
【问题讨论】:
-
什么表明对象创建是开销?是否有一些性能分析来支持这个假设?如果没有分析,那么停止尝试“修复”未显示为问题的问题 :-)(现代 JVM/机器可以创建 [和 GC] 数亿 每秒新对象。)
-
如果对象创建确实是一个问题(我同意@pst,您应该使用某种措施来断言这一点),那么添加更多线程并不能解决问题。您应该考虑创建更少的对象或简化它们的创建。
-
除非您使用 JVM v1.1 和/或每秒创建数千个对象,否则我真的怀疑对象创建对您来说是一个瓶颈,因为这是最优化的功能之一JVM。如果这确实给您带来了问题,请使用对象池。
-
感谢您的建议。它的过程很简单。整个过程只是从网络中获取线路并将每条线路转换为包括近百个对象的对象。每秒行数为 10,000。这让我有了结论。根据你的意见,我错了。我必须在其他地方找到瓶颈。再次感谢:-)
-
@JohnnyLim 我会想象瓶颈与 IO(或解析)相关。不过,请务必从基准/性能分析开始——然后可以确定可以改进的部分(以对整个系统进行改进的方式):)
标签: java multithreading performance object