Dif*_*din 8 java cpu multithreading jvm throttling
我在这个(和其他)论坛上看到了许多相同标题的问题,但它们似乎都没有解决我的问题.就是这样:我有一个JVM,可以在托管它的机器上占用所有CPU.我想限制它,但是我不能依赖Java 外部的任何限制工具/技术,因为我不能假设这个Vm将在哪里运行.因此,例如,我无法使用处理器关联,因为如果VM在Mac上运行,则操作系统不会使进程关联可用.
我需要是指示是否存在手段中的Java,以确保线程不取足CPU.
我想直截了当地指出,我不能使用基于交替进程执行和暂停的技术,如某些论坛所建议的那样,因为线程需要不断生成值.
理想情况下,我想要一些意思,例如,设置一些VM或线程优先级,或以某种方式限制CPU消耗的百分比.
任何帮助将非常感激.
我需要的是指示Java中是否存在手段以确保线程不占用完整的CPU.
除了将应用程序调整为使用更少的CPU之外,我无法在Java中执行此操作.
Thread.sleep(...);在计算方法中调用一些调用.分析器可以帮助您显示热循环/方法/等.从JVM外部可以使用~unix nice命令来影响正在运行的JVM的优先级,使其不支配系统.这将为CPU提供CPU(如果可用),但会让其他应用程序获得更多CPU.
Dif*_*din -1
非常有趣的话题。我发现 Java 没有提供做我想做的事情的方法,而做到这一点的唯一方法是从JVM外部。我最终使用nice来改变我的测试(Linux)环境中的调度优先级,仍然需要为基于WIN的操作系统找到类似的东西。
非常感谢大家的参与。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2843 次  |  
        
|   最近记录:  |