Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaw.exe高cpu使用率_Java_Java 7 - Fatal编程技术网

javaw.exe高cpu使用率

javaw.exe高cpu使用率,java,java-7,Java,Java 7,我已经创建了一个可运行的jar,它在单个线程上运行。线程执行具有100次迭代的for循环。但是,在i3处理器win7 64位机器上,cpu usgae将高达60%。 我试着分析计算机中的cpu使用情况 本机线程正在使用CPU。 本机线程都位于msvcr100.dll!endthreadex+0x60 消耗cpu 我使用的是JDL1.7。 有人能告诉我这里可能出了什么问题吗 代码如下: 应用程序接受套接字连接并处理客户端发送的日期 while (true) { try {

我已经创建了一个可运行的jar,它在单个线程上运行。线程执行具有100次迭代的for循环。但是,在i3处理器win7 64位机器上,cpu usgae将高达60%。 我试着分析计算机中的cpu使用情况

本机线程正在使用CPU。 本机线程都位于msvcr100.dll!endthreadex+0x60 消耗cpu 我使用的是JDL1.7。 有人能告诉我这里可能出了什么问题吗

代码如下: 应用程序接受套接字连接并处理客户端发送的日期

while (true)
{
    try
    {
        Socket sock = ssock.accept();   
        // This is the function which has the for loop          
        obj.MyFunction();           
    }
    catch(Exception ex)
    {               
        ssock.close();
    }
    Thread.sleep(1000);
}                   

void MyFunction()
{
    for(int i=0; i < 1000;i++)
    {
         // Processing done here
    }
}
while(true)
{
尝试
{
Socket sock=ssock.accept();
//这是具有for循环的函数
obj.MyFunction();
}
捕获(例外情况除外)
{               
ssock.close();
}
睡眠(1000);
}                   
void MyFunction()
{
对于(int i=0;i<1000;i++)
{
//处理在这里完成
}
}

分析您的代码,请参阅以了解更多信息。

我怀疑如果您尝试以下方法:

ex.printStackTrace();
你可能会得到更多的信息。现在,当你遇到异常时,你不知道发生了什么或为什么。您对此保持沉默,这很少是命中异常的正确行为


处理过程是什么?如果您试图做大量的工作,使用60%的cpu可能并不意外。你的算法的大O运行时是什么?数据集的大小是多少?

如果在此处显示代码,可能会有所帮助!!刚刚发布的代码这里是Process Explorer分析图像的链接,
MyFunction
?如果它运行约1400毫秒并消耗100%的CPU,平均负载将为60%,加上1000毫秒的睡眠。(这也有助于为
MyFun
MyFunction
赋予相同的名称,并决定是运行100次迭代还是1000次迭代。)这里不需要
sleep()
<代码>接受()。它包含解析xml的代码。我以xml的形式向进程传递数据,函数迭代所有节点以获取数据。所有这些都发生在单个线程中。cpu使用率从40%到60%不等,有时甚至会冻结我的机器。这里有指向Process Explorer所做分析图像的链接。为什么本机线程会占用最大的cpu周期?为什么有些代码会占用大量时间是一个非常广泛的问题,需要迭代的答案太多了。所有的慢度问题最终归结为算法和技术问题。如果你能谈谈你正在做的事情的算法复杂性,那么你就有可能去寻找速度缓慢的技术原因,但就目前而言,我不认为排除效率低下的算法是正确的。