Java程序性能优化之缓冲优化
优化前的代码:
package com; import javax.swing.*;
import java.awt.*; /**
* 使用Eclipse,右键Run As,Java Applet运行
* 优化前效果:出现画面抖动和白光效果
* @author 胡金水
*
*/
public class NoBufferMovingCircle extends JApplet implements Runnable { Image screenImage = null;
Thread thread;
int x = 5;
int move = 1; public void init(){
screenImage = createImage(230,160);
} public void start(){
if(thread == null){
thread = new Thread(this);
thread.start();
}
} @Override
public void run() {
try{
while (true){
x += move;
if((x > 105) || (x < 5)){
move *= -1;
}
repaint();
Thread.sleep(10);
}
}catch (Exception e){ }
} public void drawCircle(Graphics gc){
Graphics2D g = (Graphics2D) gc;
g.setColor(Color.GREEN);
g.fillRect(0,0,200,100);
g.setColor(Color.red);
g.fillOval(x,5,90,90);
} public void paint(Graphics g){
g.setColor(Color.white);
g.fillRect(0,0,200,100);
drawCircle(g);
} }
优化后的代码:
package com; import java.awt.Color;
import java.awt.Graphics; /**
* 使用Java Applet运行
* 优化后,没有出现画面抖动和白光效果
* @author 胡金水
*
*/
public class BufferMovingCircle extends NoBufferMovingCircle{ Graphics doubleBuffer = null;//缓冲区 public void init() {
super.init();
doubleBuffer = screenImage.getGraphics();
} public void paint(Graphics g) {//使用缓冲区,优化原有的paint()方法
doubleBuffer.setColor(Color.white);//先在内存中画图
doubleBuffer.fillRect(0, 0, 200, 100);
drawCircle(doubleBuffer);
g.drawImage(screenImage, 0, 0, this);//将buffer一次性显示出来
} }
Java程序性能优化之缓冲优化的更多相关文章
- Java程序性能优化技巧
Java程序性能优化技巧 多线程.集合.网络编程.内存优化.缓冲..spring.设计模式.软件工程.编程思想 1.生成对象时,合理分配空间和大小new ArrayList(100); 2.优化for ...
- 《Java程序性能优化:让你的Java程序更快、更稳定》
Java程序性能优化:让你的Java程序更快.更稳定, 卓越网更便宜,不错的书吧
- [JAVA] java程序性能优化
一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...
- Java程序性能定位工具-火焰图
Java程序性能定位工具-火焰图 前言 Java火焰图是一种新的查看CPU利用率方式.今天就带大家一起使用来自Google大神的工具来生成火焰图.火焰图非常的直观,问题一目了然,希望有一天它能成为JA ...
- 《Java程序性能优化》学习笔记 设计优化
豆瓣读书:http://book.douban.com/subject/19969386/ 第一章 Java性能调优概述 1.性能的参考指标 执行时间: CPU时间: 内存分配: 磁盘吞吐量: 网络吞 ...
- 《Java程序性能优化》之设计优化
豆瓣读书:http://book.douban.com/subject/19969386/ 第一章 Java性能调优概述 1.性能的参考指标 执行时间: CPU时间: 内存分配: 磁盘吞吐量: 网络吞 ...
- java程序性能优化
一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...
- Java程序性能优化——让你的java程序更快、更稳定
1.Java性能调优概述 1.1.Web服务器,响应时间.吞吐量是两个重要的性能参数. 1.2.程序性能的几个表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:分配是否合理,是否过多 ...
- Java程序性能优化读书笔记(一):Java性能调优概述
程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...
- Java程序性能优化之性能概述
性能的基本概念 一).什么叫程序的性能? 程序运行所需的内存和时间. 二).性能的表现形式: 1).执行速度: 程序的反应是否迅速,响应时间是否足够短. 2).启动时间:程序从运行到可以处理正常业务所 ...
随机推荐
- codevs 1487 大批整数排序(水题日常)
时间限制: 3 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description !!!CodeVS开发者有话说: codevs自从换了评测机,新评测机的内存计算 ...
- c++ 各种类型字符串转换
typedef std::string u8string; u8string To_UTF8(const std::u16string &s) { std::wstring_convert&l ...
- Luogu P3938 斐波那契
Luogu P3938 斐波那契 第一眼看到这题,想到的是LCA,于是开始想怎么建树,倒是想出了\(n^{2}\)算法,看了下数据范围,果断放弃 想了想这数据范围,大的有点不正常,这让我想起了当年被小 ...
- Hibernate 中批量处理数据
一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 ...
- Bootstrap历练实例:按钮组大小
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- Git学习——撤销修改
git checkout -- <file> 当你修改完一个工作区的文件后,使用git status查看当前的状态.其中有说明,接下来你可以git add <file> 去添加 ...
- sram bist scripts
主要三个script: mbist_run: call mbistarchitect tool run.do:run bist flow bist setup => bist mode(bis ...
- 【ios】IOS返回3824错误
后台接口数据返回有NULL格式的数据
- 【转发】【linux】【php】centos 编译php常见错误
configure: error: xml2-config not found. Please check your libxml2 installation. yum install libxml2 ...
- 【php】 get 和 post 比较
来源 php.net 评论区 -- nucc1 worth clarifying: POST is not more secure than GET. The reasons for choosing ...