我刚开始用Java编程,我对计算机如何分配CPU负载感兴趣.我已经制作了一个非常基本的程序,可以创建一个窗口并进行框和线移动.在测试时,我查看了任务管理器; 任务经理说我使用了大约1%的CPU.但是,当我运行我的程序时,CPU使用率上升到~36%(我只启动了程序,没有别的).谁能告诉我这里发生了什么事,拜托?

编辑:这个错误仅当我在 Ubuntu 14.04 笔记本电脑上运行游戏时才会发生。当我在 Windows 学校计算机上运行它时,它运行良好。
正常运行时窗口滞后,但当我用鼠标调整窗口大小时停止滞后
我正在尝试用 java 制作一个简单的游戏,但是当我运行它时,它会疯狂地滞后,我查看了代码,并对 System.out.println 和 System.currentTimeMillis 进行了一些检查,并且代码运行不到一毫秒,所以这不是问题。
当我拖动以调整窗口大小并不断更改窗口的大小(大概强制屏幕重绘)时,程序会停止,当我这样做时,它具有非常流畅的动画。
当我的程序运行时,它以平滑的动画开始,然后大约 1 秒后它达到大约 2 FPS,再过一秒达到 1 FPS,然后大约 0.5FPS 并保持在那里,直到我通过调整大小强制重新绘制。窗户
我的代码是:
public class WindowSetup extends JPanel{
private static final long serialVersionUID = 6486212988269469205L;
static JFrame frame;
static JPanel panel;
protected void paintComponent(Graphics g){
super.paintComponent(g);
GameClass.draw(g);
}
public static void main(String[] args) {
frame = new JFrame("Evolver");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
panel = new WindowSetup();
frame.add(panel);
panel.setVisible(true);
frame.setVisible(true);
GameClass.init();
ActionListener al = new ActionListener() {
public void …Run Code Online (Sandbox Code Playgroud)