Java中的线程负载跟踪
当设计一个包含多个移动部件的应用程序时,可能会在高负载下将其最大化,因此可能需要将应用程序的某些部分优先于其他部分。此外,了解应用程序的哪个部分是瓶颈,或者工作最努力,对于确定应用程序对高负载的最佳反应可能很有用Java中的线程负载跟踪,java,multithreading,Java,Multithreading,当设计一个包含多个移动部件的应用程序时,可能会在高负载下将其最大化,因此可能需要将应用程序的某些部分优先于其他部分。此外,了解应用程序的哪个部分是瓶颈,或者工作最努力,对于确定应用程序对高负载的最佳反应可能很有用 Java内部是否有一种基于线程确定负载的通用方法?是的,如果平台支持,您可以。从: Java虚拟机实现可能支持测量当前线程、任何线程或无线程的CPU时间 下面是一些示例代码: package test.thread.load; import java.lang.management.
Java内部是否有一种基于线程确定负载的通用方法?是的,如果平台支持,您可以。从: Java虚拟机实现可能支持测量当前线程、任何线程或无线程的CPU时间 下面是一些示例代码:
package test.thread.load;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
public class ThreadLoadTest
{
public static void main(final String[] args)
{
final ThreadMXBean bean = ManagementFactory.getThreadMXBean();
for (final long id : bean.getAllThreadIds())
{
System.out.println(bean.getThreadInfo(id).getThreadName()
+ ": " + bean.getThreadCpuTime(id));
}
}
}
也可能有用。是的,如果平台支持,您可以。从: Java虚拟机实现可能支持测量当前线程、任何线程或无线程的CPU时间 下面是一些示例代码:
package test.thread.load;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
public class ThreadLoadTest
{
public static void main(final String[] args)
{
final ThreadMXBean bean = ManagementFactory.getThreadMXBean();
for (final long id : bean.getAllThreadIds())
{
System.out.println(bean.getThreadInfo(id).getThreadName()
+ ": " + bean.getThreadCpuTime(id));
}
}
}
设计也可能有用。设计应清楚地识别不同类型的任务/用例。然后根据需要,这些任务可以在单独的线程或主线程中执行。对于不同类型的任务,可以有不同的线程池。然后在系统上运行不同类型的负载测试,以优化线程池的线程数和相关队列大小。一旦达到系统的最佳数量和期望性能,请继续进行此练习
希望有帮助 设计应清楚地识别不同类型的任务/用例。然后根据需要,这些任务可以在单独的线程或主线程中执行。对于不同类型的任务,可以有不同的线程池。然后在系统上运行不同类型的负载测试,以优化线程池的线程数和相关队列大小。一旦达到系统的最佳数量和期望性能,请继续进行此练习
希望有帮助 这听起来很像教科书上的问题。在谷歌上搜索Java profiler,你会得到很多。mre,这不是教科书上的问题。我只是选择不以第一人称写。Rajaganesh,我正在寻找如何在应用程序内部实现它。这听起来很像教科书上的问题..在google上搜索Java profiler,你会得到很多。mre,这不是教科书上的问题。我只是选择不以第一人称写。Rajaganesh,我正在寻找如何在应用程序内部实现它。