java性能问题

问题描述

java性能问题

public class Guava implements Runnable {
public static void main(String []a){
new Thread(new Guava()).start();
}
@Override
public void run() {
long end;
long start;
int temp=0;
while(true){

    start=System.currentTimeMillis();
    for(int i=0;i<1000000000;i++){
        int b=0;
        temp=++b;
    }
    end=System.currentTimeMillis();
    System.out.println("1:"+(end-start));
    System.out.println("b="+temp);
    //---------------------------------------
    start=System.currentTimeMillis();
    int c=0;
    for(int j=0;j<1000000000;j++){
        c=0;
        temp=++c;
    }
    end=System.currentTimeMillis();
    System.out.println("2:"+(end-start));
    System.out.println("c="+temp);
    //---------------------------------------
    try {
        new Thread().sleep(3000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("---------------------------------------");}
}
}
![图片说明](http://img.ask.csdn.net/upload/201603/24/1458785966_300029.png)

为什么 case1 比较快

解决方案

用内存空间换取时间。

解决方案二:

1.尽量在合适的场合使用单例
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
·?控制资源的使用,通过线程同步来控制资源的并发访问;
·?控制实例的产生,以达到节约资源的目的;
·?控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。
2.尽量避免随意使用静态变量
要知道,当某个......
答案就在这里:Java中“性能”问题

时间: 2024-11-04 08:37:11

java性能问题的相关文章

Java性能的优化(上)(转)

性能|优化 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是Java的跨平台的操作性,即所谓的"Write Once,Run Anywhere".但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评. 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP,Servlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务器

(代码级)Java性能的优化

性能|优化 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是Java的跨平台的操作性,即所谓的"Write Once,Run Anywhere".但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评. 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP,Se rvlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务

Java性能的优化(上)

性能|优化 Java在九十年代中期出现以后,在赢得赞叹的同时,也引来了一些批评.赢得的赞叹主要是Java的跨平台的操作性,即所谓的"Write Once,Run Anywhere".但由于Java的性能和运行效率同C相比,仍然有很大的差距,从而引来了很多的批评. 对于服务器端的应用程序,由于不大涉及到界面设计和程序的频繁重启,Java的性能问题看似不大明显,从而一些Java的技术,如JSP, Servlet,EJB等在服务器端编程方面得到了很大的应用,但实际上,Java的性能问题在服务

Java 性能优化之 String 篇

String 在 JVM 的存储结构 一般而言,Java 对象在虚拟机的结构如下: 对象头(object header):8 个字节 Java 原始类型数据:如 int, float, char 等类型的数据,各类型数据占内存如 表 1. Java 各数据类型所占内存. 引用(reference):4 个字节 填充符(padding) 表 1. Java 各数据类型所占内存 然而,一个 Java 对象实际还会占用些额外的空间,如:对象的 class 信息.ID.在虚拟机中的状态.在 Oracle

关于Java性能的9个谬论

Java的性能有某种黑魔法之称.部分原因在于Java平台非常复杂,很多情况下问题难以定位.然而在历史上还有一种趋 势,人们靠智慧和经验来研究Java性能,而不是靠应用统计和实证推理.在这篇文章中,我希望拆穿一些最荒谬的技术神话 . 1.Java很慢 关于Java的性能有很多谬论,这一条是最过时的,可能也是最为明显的. 确实,在上 世纪90年代和本世纪初处,Java有时是很慢. 然而从那以后,虚拟机和JIT技术已经有了十多年的改进,Java的整体 性能现在已经非常好了. 在6个独立的Web性能基准

Java性能优化[1]:基本类型 vs 引用类型

在Java性能优化系列中,内存管理是一个要优先考虑的关键因素.而说到内存分配,就必然会涉及到 基本类型和引用类型.所以我们今天就先来介绍一下这两种类型在性能方面各自有什么奥妙(关于这两 种类型在其它方面的奥妙,我会另外写一个帖子). ★名词定义 先明确一下什么是基本类型,什么是引用类型.简单地说,所谓基本类型就是Java语言中如下的8种 内置类型:boolean.char.byte.short.int.long.float.double.而引用类型就是那些可以通过 new来创建对象的类型(基本上

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程监控 全功能内置分析器,如 JConsole 和 VisualVM 的成本有时比它们的性能费用还要高 - 尤其是在生产软件上运行的系统中.因此,在聚焦 Java 性能监控的第 2 篇文章中,我将介绍 5 个命令行分析工具,使开发人员仅关注运行的 Java 进程的一个方面. JDK 包括很多命令行实用程序,可以用于监控和管理 Java 应用程序性能.虽然大多数这类应用程序都被标注为 "实验型",在技术上不

5招教你把握Java性能监控(转自51testing)

很多开发者觉得自己懂Java编程,事实是大多数开发人员都只领会到了Java平台的皮毛,所学也只够应付工作.作者将深度挖掘Java平台的核心功能,揭示一些鲜为人知的事实,帮助您解决最棘手的编程困难. 当应用程序性能受到损害时,大多数开发人员都惊慌失措,这在情理之中.跟踪Java应用程序瓶颈来源一直以来都是很麻烦的,因为Java虚拟机有黑盒效应,而且Java平台分析工具一贯就有缺陷. 然而,随着Java5中JConsole的引入,一切都发生了改变.JConsole是一个内置Java性能分析器,可以从

Java性能最后一个领域:去除垃圾回收器

来自RedHat的性能和OpenJDK开发者Aleksey Shipil v,提交了一份新的JEP草案,其内容为创建一个无操作垃圾回收器:一种实际上不进行实际内存回收的GC方式.该回收器旨在帮助JVM实现者和研究者,以及少部分无需垃圾回收的超高性能应用程序.如果这项JEP继续推进,新的GC方式将会和现有GC方式一起存在,并且通过显式激活方式使用. 垃圾回收和Java性能向来都是复杂的话题,为了能够更清晰的说明,InfoQ联系了Java Champions成员.性能专家Martijn Verbur