Java 使用CPU密集型应用程序

Java 使用CPU密集型应用程序,java,performance,Java,Performance,我正在开发一些运行在wildfly上的JavaEE应用程序,它没有太多的I/O。I/O调用的结果被大量缓存,因此如果进行一些性能测试,我可以假设它的CPU有限 有很多数学和一些大型数组排序(大约100000个条目)任务。而数组中的条目是POJO 单个请求中的大部分工作被分割为500个任务,并在线程池中完成,线程池的大小与CPU的数量有关 使用少数用户测试应用程序时,CPU利用率为50-60%。我希望它是90-100% CPU利用率低的原因可能是什么,开发此类应用程序以实现最高性能的一般建议是什么

我正在开发一些运行在wildfly上的JavaEE应用程序,它没有太多的I/O。I/O调用的结果被大量缓存,因此如果进行一些性能测试,我可以假设它的CPU有限

有很多数学和一些大型数组排序(大约100000个条目)任务。而数组中的条目是POJO

单个请求中的大部分工作被分割为500个任务,并在线程池中完成,线程池的大小与CPU的数量有关

使用少数用户测试应用程序时,CPU利用率为50-60%。我希望它是90-100%


CPU利用率低的原因可能是什么,开发此类应用程序以实现最高性能的一般建议是什么。

只有一种方法可以知道:评测应用程序并查看它在做什么。我做了评测,结果显示池一直在处理任务评测使用什么?你可以从探查器中得到更多。你能识别出cpu周期最多的实际方法吗?为了获得最佳性能,您应该关注这一点。我会为CPU分配更多线程(增加线程池)。这种java处理是共享CPU(50/50)还有其他SO进程。只有一种方法可以知道:评测你的应用程序,看看它在做什么。我做了评测,它显示池在不断处理任务评测什么?你可以从探查器中得到更多。你能识别出cpu周期最多的实际方法吗?为了获得最佳性能,您应该关注这一点。我会为CPU分配更多线程(增加线程池)。无论如何,这个java处理与其他SO进程共享CPU(50/50)。