`
小滔哥
  • 浏览: 59066 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
文章列表
一、引言     我们会发现$JAVA_HOME/bin/目录下的java,jmap,jstack,jstat,jinfo等等都是二进制的文件,而我们又很容易发现,java是与一个源文件java.c对应的,却看不到jmap,jstack,jstat等对应的源文件,那么这些工具又是怎么生成的呢,下面介绍下我是如何发现这些工具是怎样生成的,以jmap为例。 二、以jmap为例,介绍这些工具如何生成的。     首先想到的是,build整个openjdk,然后根据build信息查找jmap是如何生成的。     build openjdk ,这里有个详细的参考,rednaxelafx大神的作 ...
  一、 语法方面注意 if /while /for 格式   1.       if 语句 注意 if 与 [] 之间的空格;条件表达式前后都有空格 实例   if [ $# -lt 3 ];then echo usage: `basename $0` arg1 arg2 arg2 exit 1 fi echo $1 echo $2 echo $3     2.       while 语句 注意 while 与 [] 空格;件表达 ...
参数用法说明 man free 可以得到详细的信息,这里贴个中文的,读起来快。   语  法:  free [-bkmotV][-s < 间隔秒数 >] 补充说明: free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 参  数:   -b   以 Byte 为单位显示内存使用情况。   -k   以 KB 为单位显示内存使用情况。     -m   以 MB 为单位显示内存使用情况。     -o   不 ...
  什么是字符集     字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。 一组抽象字符的集合就是字符         集(Charset)。     字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。     常见的字符集包括ASCII字符集(由控制字符和图形字符组成)、GB2312字集(简体字集),GBK字集(简繁字集),通用字符集(Universal Character Set,UCS),Unicode字集(同UCS)。   什么是字符编码     字符编码(Char ...
      Perf 是用来进行软件性能分析的工具。它随 Linux 内核代码一同发布和维护,由内核社区维护和发展。 这里推荐两篇介绍 perf 的文章     英文原版的介绍       https://perf.wiki.kernel.org/index.php/Tutorial     中文的使用介绍       http://www.ibm.com/developerworks/cn/linux/l-cn-perf1/index.html       http://www.ibm.com/developerworks/cn/l ...
1.Perftools 介绍     项目地址 http://code.google.com/p/gperftools/       引用原文里的一段英文介绍       Perftools is a collection of a high-performance multi-threaded malloc() implementation, plus some pretty nifty performance analysis tools.       Perftools 是一个高效的多线程 malloc 实现,附加一些很好的性能分析工具。使用这个 ...
   1.从Exception往上介绍相关结构、代码     class Exception 里面没有什么新鲜东西,它继承自 class Throwable ,接下来我们看一下 Throwable 的结构,在它的构造函数中调用了 fillInStackTrace 这个函数。接下来我们看看这个函数干了些什么。     fillInStackTrace 函数的声明为 public synchronized native Throwable fillInStackTrace();      这是个 native 方法。     然后我们到jdk的代 ...
前些天做了两件事,1.strip符号表;2.查看so文件的代码是否inline。操作步骤如下   1.     readelf -sW libjvm.so | grep 'OBJECT *LOCAL *HIDDEN' | awk '{print $8}' | egrep '[.][0-9]+$' > strip_sym.lst     objcopy --strip-symbols=strip_sym.lst -v xxx.so     这样得到的新so文件就不含有strip掉的符号信息了,strip过程时间会稍长一点。   2.     objdump -dw xxx. ...
1.       使用 vtune 分析 tasktracker,jobtracker,datanode 1.1在 conf/hadoop-env.sh 中添加如下修改,这样在 vtune 的结果中能看到 jit 信息。 export AMPLXE_EXPERIMENTAL=1 1.2在 bin/hadoop 中,将如下语句进行替换。 exec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLAS ...
1. JavaHeap 的构成 Java Heap 包含三个部分 YoungGen,OldGen,PermGen 三个部分,亦叫作年轻代,年老代,永久代。 DefNewGeneration 是 YoungGen 的一个实现,包含 _eden_space, _from_space, _to_space 三个部分。在 YoungGen 中分配对象的时候会在 eden 中进行分配, from 和 to 是在 ygc 的过程中用到的,将 eden 和 from 中存活的对象拷贝到 to 中,每一次ygc,from和to的角色 ...
1. 介绍 Vtune 是 intel 的一款性能分析工具,其既可以分析某种应用的特性,也可以检测整个系统的特性,能够找出热点瓶颈的所在,给开发者提供良好的优化思路。 2.Vtune 下载,安装 Vtune 有 windows 版本和 linux 版本,有收费的,试用的,免费的。本人使用的是一款试用版本, vtune 地址 http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/ ,下载前需要注册账号,得到序列号,安装的时候需要用到。 安装 vtu ...
1.Oprofile 安装 下载地址 http://oprofile.sourceforge.net/download/ ,安装过程略 2.使用 2.1 启动 oprofile , opcontrol --vmlinux=/usr/lib/debug/lib/modules/2.6.18-164.el5debug/vmlinux –start 这里如果没有 vmlinux 的话,去下一个与 kenerl 相同版本的带 debug 信息的 kernal 安装下,我这里下载了 kernel-debug-debuginfo ...
1.源码中WorkGang, GangWorker结构关系 SharedHeap的结构如下,在结构中含有成员FlexibleWorkGang* _workers; class SharedHeap : public CollectedHeap { friend class VMStructs; friend class VM_GC_Operation; friend class VM_CGC_Operation; private: // For claiming strong_roots tasks. SubTasksDone* _proc ...
1.openjdk源码下载 http://download.java.net/openjdk/jdk6/ 2.将打包文件解压,在解压目录内运行下面shell命令,添加-g选项 for file in `grep "\-O3" * -r | awk -F: '{print $1}' `; do sed -i 's/\-O3/\-g/g' $file; done 准备工作做好后,开始build,我所运行的系统环境Ubuntu 11.04 3.  开始安装 sudo apt-get build-dep  openjdk- ...
Global site tag (gtag.js) - Google Analytics