Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
第二次创建时线程运行缓慢(Java/Blackberry)_Java_Blackberry - Fatal编程技术网

第二次创建时线程运行缓慢(Java/Blackberry)

第二次创建时线程运行缓慢(Java/Blackberry),java,blackberry,Java,Blackberry,我正在做一个简单的游戏,当它第一次运行时,它运行完美,没有问题,如果你完成了一个关卡,高分屏幕就会打开(下面的run()方法),那么下次你玩游戏时,它的运行速度大约是第一轮的五分之一。我有另一个线程,它是一个计时器,在这两种情况下都能完美运行。我已经查看了代码,但找不到任何原因说明它在第二轮运行时会变慢?有什么想法吗 下面是从菜单屏幕打开关卡的代码 public void fieldChanged(Field inField, int inContext){ final int

我正在做一个简单的游戏,当它第一次运行时,它运行完美,没有问题,如果你完成了一个关卡,高分屏幕就会打开(下面的run()方法),那么下次你玩游戏时,它的运行速度大约是第一轮的五分之一。我有另一个线程,它是一个计时器,在这两种情况下都能完美运行。我已经查看了代码,但找不到任何原因说明它在第二轮运行时会变慢?有什么想法吗

下面是从菜单屏幕打开关卡的代码

    public void fieldChanged(Field inField, int inContext){
    final int level;

    if(inField == button1)
        level = 1;
    else
        if(inField == button2)
            level = 2;
        else
            if(inField == button3)
                level = 3;
            else
                if(inField == button4)
                    level = 4;
                else
                    level = 0;                  //Ensures variable is initialised

    game = new Game(level);

    UiApplication.getUiApplication().pushScreen(game);

    _invokeID = getApplication().invokeLater(new Runnable(){

    public void run(){
            if (game.getActive() == false){
                getApplication().cancelInvokeLater(_invokeID);
                getUiEngine().popScreen(game);

                Dialog.inform("Final Score: " + String.valueOf(game.getScore()));
                hs = new HighScore(game.getScore(), game.getTime(), level);
                UiApplication.getUiApplication().pushScreen(hs);

                game = null;                
            }
        }
    }, 500,true);
}
  • 使用jconsole/visualvm等检查程序java进程JVM的堆/CPU使用统计信息

  • 如果JVM频繁进行垃圾收集,则表明进程的堆内存不足,需要解决该问题

  • 让我知道你的发现