![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 80
iteye_2535
这个作者很懒,什么都没留下…
展开
-
常用 Java Profiling 工具的分析与比较
相对于静态代码分析,Profiling 是通过收集程序运行时的信息来研究程序行为的动态分析方法。其目的在于定位程序需要被优化的部分,从而提高程序的运行速度或是内存使用效率。收集程序运行时信息的方法主要有以下三种:事件方法:对于 Java,可以采用 JVMTI(JVM Tools Interface)API 来捕捉诸如方法调用、类载入、类卸载、进入 / 离开线程等事件,然后基于这些事件进行...原创 2010-08-15 22:04:43 · 418 阅读 · 0 评论 -
Concurrent mark
Concurrent mark gives reduced and consistent garbage collection pause times when heap sizes increase.The GC starts a concurrent marking phase before the heap is full. In the concurrent phase, the ...2010-04-15 19:39:45 · 156 阅读 · 0 评论 -
如何在IBM JDK 1.4.2的环境中避免Java堆空间的碎片问题
用户在使用WebSphere Application Server(以下简称WAS)运行自己应用的时候经常会碰到Out Of Memory的问题(简称OOM问题),其中很大一部分的情况是Java堆空间碎片问题引起的OOM问题。IBM JDK 1.4.2的版本中JDK对GC的行为做出了一定的改进。其中一些JDK参数的引进可以改善Java堆空间的碎片问题。本文首先会给出IBM JDK 1.4.2中对于...2010-04-19 15:48:04 · 95 阅读 · 0 评论 -
IBM JDK和sun jdk区别
在IBM的虚拟机官方指导文档中明确指出,禁止将虚拟机的最大值和最小值设置为相等,否则会导致以下2个后果<1>极大的增加垃圾回收时间,影响系统性能<2>造成系统中存在内存碎片。然而,BEA推荐将最小堆大小和最大堆大小设置为同一值,因为这样可以避免浪费用于时常调整堆大小所需的 VM 资源。同样是堆大小,却有两种不同的说法,有必要来分析一下。先看IBM的文...2010-04-19 15:52:45 · 1005 阅读 · 0 评论 -
Concurrent kickoff
This example shows you the output produced when the concurrent mark process is triggered.<con event="kickoff" timestamp="Nov 25 10:18:52 2005"> <stats tenurefreebytes="2678888" trace...2010-04-19 15:55:42 · 117 阅读 · 0 评论 -
java的volatile是什么意思
我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。 这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。 在当前的Java内存模型下,线程可以把变量保存在本地...2010-04-20 15:39:21 · 162 阅读 · 0 评论 -
JNI的crash终于搞定<转>
今天终于搞定困扰我一周的一个问题了。我们的算法通过jni封装,在java调用的时候总是随机的crash掉,具体的位置在jvm里面,应该可以肯定是jvm做垃圾回收的时候死掉的。但是并不知道是在回收哪块内存出的问题,所以也就无从知道死的具体原因了。我们的程序是在jni层创建了一些java对象,然后返回给java层,大体结构像下面代码一样,我只能基本判断是我们的jni层在创建对象的时候(也就是creat...原创 2010-06-18 13:08:37 · 685 阅读 · 0 评论 -
JNI原理1
在某些Java的忠实支持者眼中,JNI(Java Native Interface)是难登大雅之堂的,因为JNI生来便仿佛和Java“Write Once, Run Everywhere”的宗旨相背离。其实这是一种偏见,因为只要承认Java在执行一些关键业务时在实时性方面的不足,只要承认Java在与底层交互方面存在诸多壁垒,JNI便有其存在的必要。况且,更理性地看待这个问题:Java最初诞生的...原创 2010-06-18 13:14:36 · 67 阅读 · 0 评论 -
JNI原理2
15.2 调用C程序JNI规范最初便是针对Java调用C语言的,因此对C程序的调用具有一套约定俗成的步骤:(1)编写作为主调方的Java类。Java类一方面声明将要调用的C函数,一方面载入本地的动态链接库文件(即.dll文件)。(2)使用javac命令编译Java类。(3)使用javah命令为C程序生成头文件(即.h文件)。在自动生成的头文件中将声明有待实现的C函数。(4)编...原创 2010-06-18 13:31:43 · 96 阅读 · 0 评论 -
Debugging the JNI
If you think you have a JNI problem, there are checks you can run to help you diagnose the JNI transitions.Errors in JNI code can occur in several ways:The program crashes during execution of a...原创 2010-06-18 14:03:44 · 77 阅读 · 0 评论 -
监控系统内存
public CollectorThread(int second,String path,String pid,String name) { this.second = second; this.pid = pid; this.name = name; String osname = System.getPrope...原创 2010-07-01 14:15:07 · 104 阅读 · 0 评论 -
Java 技术,IBM 风格: 垃圾收集策略,第 1 部分
可以使用 4 种不同的策略配置 IBM Developer Kit for the Java 5.0 Platform(IBM SDK)中的垃圾收集(GC)。本文(关于 GC 的两篇文章的第一篇)介绍不同的垃圾收集策略并讨论它们的性质。在阅读本文之前,您应该对 Java 平台中的垃圾收集有基本的认识。第 2 部分将给出一种选择策略的量化方法,以及一些示例。为什么要有不同的 GC 策略?...2010-04-15 16:51:06 · 98 阅读 · 0 评论 -
Java 网页浏览器组件介绍
前言在使用 Java 开发客户端程序时,有时会需要在界面中使用网页浏览器组件,用来显示一段 HTML 或者一个特定的网址。本文将介绍在界面中使用浏览器组件的四种方法,给出示例的代码,并且分析每种方法的优点与不足,便于 Java 开发者在实际开发过程中根据自己的需要来选择。 JDK 中的实现 - JEditorPaneSwing 是一个用于开发 Java 应用程序图形化用户界面的...2010-04-12 23:44:05 · 634 阅读 · 0 评论 -
利用 Java dump 进行 JVM 故障诊断
引言对于大型 java 应用程序来说,再精细的测试都难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的运行状态并将其存储在转储(dump)文件中,从而为我们分析和诊断问题提供了重要的依据。常见的转储文件包括 Java Dump, Heap dump 和 System dump。...2010-04-06 16:54:44 · 193 阅读 · 0 评论 -
JAVA如何调用DOS命令
用Java编写应用时,有时需要在程序中调用另一个现成的可执行程序或系统命令,这时可以通过组合使用Java提供的Runtime类和Process类的方法实现。下面是一种比较典型的程序模式:... Process process = Runtime.getRuntime().exec(".\\p.exe"); process.waitfor( ); ... 在上面的程序中,第一行的“.\\p.ex...2010-03-17 17:18:48 · 75 阅读 · 0 评论 -
Java打印当前时间
Calendar rightNow = Calendar.getInstance(); Date time = rightNow.getTime(); System.out.println(time.toString());2010-03-18 09:35:30 · 217 阅读 · 0 评论 -
java class文件结构
从上图中可以看到,一个 Java 类文件大致可以归为 10 个项:Magic:该 项存放了一个 Java 类文件的魔数(magic number)和版本信息。一个 Java 类文件的前 4 个字节被称为它的魔数。每个正确的 Java 类文件都是以 0xCAFEBABE 开头的,这样保证了 Java 虚拟机能很轻松的分辨出 Java 文件和非 Java 文件。Ve...2010-04-01 19:47:31 · 146 阅读 · 0 评论 -
分析Java .class文件
出处:http://www.blogjava.net/baogenfly/articles/78557.html 这章的一个例子虽然简单,但是我觉的很有一定代表性。例子如下: 1:class Act {2: public static void doMathForever(int m) {3: int i = 0;4: int n=4>...2010-04-01 19:49:11 · 111 阅读 · 0 评论 -
搞懂java中的synchronized关键字
实际上,我关于java的基础知识的90%以上都来自Thinking in Java。对于其中的synchronized关键字,当时就是浏览一下,大概知道意思,也没有细看。后来一直没有用过这个关键字。昨天看Thinking in Patterns with Java中的Observer模式,看了其中的Observable类的源码,发现里面几乎所有的方法都用了synchronized关键字(不是全部)...2010-04-01 19:54:17 · 64 阅读 · 0 评论 -
优化 Java 垃圾收集器改进系统性能
From http://www.ibm.com/developerworks/cn/java/j-lo-optimize-gc/项目背景某个大型项目的 CPU100% 的压力性能测试, 用以检查在系统运行环境不正常的情况下,系统可以运行到何种程度。测试过程是:请求测试的模拟器向系统不断发出大量请求, 系统接受由模拟器发出的请求,然后将请求置于一个任务池中,如果当前有空闲的线程,则该...2010-04-02 16:05:34 · 129 阅读 · 0 评论 -
Java 理论与实践: JVM 1.4.1 中的垃圾收集
老对象和年轻对象在任何一个应用程序堆中,一些对象在创建后很快就成为垃圾,另一些则在程序的整个运行期间一直保持生存。经验分析表明,对于大多数面向对象的语言,包括 Java 语言,绝大多数对象――可以多达 98%(这取决于您对年轻对象的衡量标准)是在年轻的时候死亡的。可以用时钟秒数、对象分配以后�h内存管理子系统分配的总字节或者对象分配后经历的垃圾收集的次数来计算对象的寿命。但是不管您如何...2010-04-06 10:42:26 · 69 阅读 · 0 评论 -
关注性能: 调优垃圾收集
随着网志作为公共日记的流行,网志主机迅速地增长。所以对于 Blog-City 的人来说,非常清楚他们的站点需要发展和提高。为了满足其增长的需要,该公司最近刚刚推出了 Blog-City version 2.0。正像经常出现的情况那样,当新的应用程序转入运行阶段时,由于各种原因,其性能无法完全满足期望的要求,突然出现随机的长时间应用程序被挂起的现象还不是最坏的情况。在其核心,Blog-Cit...2010-04-06 14:08:26 · 75 阅读 · 0 评论 -
Java 理论与实践: 垃圾收集简史
垃圾收集的好处是无可争辩的 ―― 可靠性提高、使内存管理与类接口设计分离,并使开发者减少了跟踪内存管理错误的时间。著名的悬空指针和内存泄漏问题在 Java 程序中再也不会发生了(Java 程序可能会出现某种形式的内存泄漏,更精确地说是非故意的对象保留,但是这是一个不同的问题)。不过,垃圾收集不是没有代价的 ―― 其中包括对性能的影响、暂停、配置复杂性和不确定的结束 (nondeterminis...2010-04-06 14:34:18 · 141 阅读 · 0 评论 -
IBM JVM垃圾回收原理——1
原文下载:IBM Garbage Collection and Storage Allocation Techniques 1 Introduction This document describes the functions of the Storage (ST) component from release 1.2.2 to 1.4.1, Service Ref...2010-04-06 15:42:14 · 214 阅读 · 0 评论 -
.NET开源核心运行时,且行且珍惜
背景2014年11月12日,ASP.NET之父、微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行。.NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR、JIT编译器、垃圾收集器(GC)和...2014-12-25 15:39:04 · 298 阅读 · 0 评论