- 博客(34)
- 收藏
- 关注
原创 JVM如何选择ParallelGCThreads
1、含义 ParallelGCThreads,表示JVM在进行并行GC的时候,用于GC的线程数,-XX:ParallelGCThreads=43,表示配置GC线程数为43。2、JVM相关接口 JVM中,关于ParallelGCThreads的计算代码如下:unsigned int VM_Version::calc_parallel_worker_threads()
2014-07-21 17:44:45
13654
原创 在Eclipse环境下构建jdk7u40 Windows版调试环境
1、在 http://download.java.net/openjdk/ 现在文件:openjdk-7u40-fcs-src-b43-26_aug_2013.zip,并节约,本文解压到 D:\openjdk2、执行下列脚本,进行文件拷贝:xcopy D:\openjdk\corba\src\share\classes\* D:\jdk7u40src\
2014-07-07 18:35:00
2001
原创 Class文件格式(3)-Constant && Code
1.ConstantValue ConstantValue属性是定长属性,位于field_info结构项的属性表中,该属性描述了一个常量字段的值。field_info结构项中最多只能够有一个ConstantValue属性。如果field_info结构项所描述的字段是static字段,也即描述该字段的field_info的access_flags被设置了ACC_STATIC标记,则fiel
2014-07-03 16:11:25
1085
原创 Class文件格式(2)-深入理解ClassFile
1.access_flags 继常量池之后,紧随着的两个字节代表当前类或者接口的访问控制权限,具体如下: 1.1、ACC_SYNTHETIC 表示当前类的是由编译器自己生成的,而不是由用户编写的程序源代码经过编译器编译生成的。 1.2、ACC_ENUM 当前类或者当前类的父类被声明为枚举类型。 1.3、ACC_IN
2014-06-26 14:24:20
1028
原创 ParOldGen && PSOldGen
inline const char* PSOldGen::select_name() { return UseParallelOldGC ? "ParOldGen" : "PSOldGen";}
2014-06-24 15:46:13
5228
1
原创 JVM tiered x86_x64 flags
static Flag flagTable[] = { { "bool", "UseCompressedOops", &UseCompressedOops, "Use 32-bit object references in 64-bit VM. " "lp64_product means flag is always constant in 32 bit VM", "{lp64_product
2014-06-24 14:16:31
2818
原创 Class文件格式(1)-常量池
1.Class文件格式 根据Java虚拟机描述,Class文件中数据的排列并不需要严格的字节对齐,因此字节与字节之间没有"空隙",各个字节所处的位置以及所表达的含义都是严格限定的,对于多字节数据,严格按照大端模式存储。 能够被JVM识别并执行的Class文件或者网络字节流应该具有如下格式: 1.1、magic magic为JVM所能
2014-06-17 16:00:46
965
原创 handles.hpp:Handle && KlassHandle
//------------------------------------------------------------------------------------------------------------------------// Specific Handles for different oop types#define DEF_HANDLE(type, is_a)
2014-06-13 12:39:48
1058
原创 Google Ips
Bulgaria93.123.23.193.123.23.293.123.23.393.123.23.493.123.23.593.123.23.693.123.23.793.123.23.893.123.23.993.123.23.1093.123.23.1193.123.23.1293.123.23.1393.12
2014-06-13 11:59:18
12284
原创 汇编学习笔记第18~20章:常用汇编指令汇总-课后练习-源代码
第十八章 常用汇编指令汇总8086CPU汇编指令:1、mov ax,23 表示将23移动到ax寄存器中。2、add ax,bx 表示将ax和bx的值相加,将结果存放到ax中。3、jmp 2AE3:3 表示将CS段地址更改为2AE3,将IP指令指针地址更改为3.4、jmp ax 表示仅仅修改IP的值,相当于"mov IP,ax",即用寄存器ax中的值修改IP的值。5、mo
2014-06-09 10:18:20
1610
原创 构建OpenJDK 相关错误解决方法
-encoding ascii 在编译OpenJDK的时候,编译文件中调用javac时,为其指定了编码方式为ascii(添加了参数-encoding ascii),在遇到包含非ascii编码的java文件(corba模块的部分文件)的时候,javac会报错,导致编译失败,因此,需要将-encoding编译选项去掉,让javac选择与平台想关联的编码方式。 本文以去除
2014-06-07 17:29:39
1427
原创 Java程序常用工具
Java7的所有工具命令详细描述见:docs.oracle.com/javase/7/docs/technotes/tools/index.htmljavac Java源程序编译命令 描述: javac (Java Programming Language Compiler) java程序编译器,用于将Java源程序编译为JVM
2014-06-06 13:28:43
1208
原创 Oracle Hash Join的代价模型及优化
Oracle CBO之Oracle Hash Join从整体上看,Oracle的Hash Join的原理和其它主流数据库的Hash Join的原理大致是一样的,只是Oracle对Hash Join进行了更为细粒度的划分,其中最为主要的就是,Oracle根据其内部的hash_area_size、_hash_multiblock_io_count、db_block_size以及需要构建hash
2014-05-30 10:34:17
1863
原创 程序执行和Cache
Oh,This is OS学习笔记之程序执行和Cache对于程序员而言,我们编写的程序都是用某一种程序设计语言进行编写,比如C语言,这些语言对于计算机而言是无法直接理解的,那么计算机是如何理解我们的程序,然后按照程序的要求去执行的呢?为了统一说明,本文假设使用C语言进行程序设计,当然,C语言中最为著名的莫过于HelloWord了,源码如下:#includestdio.h>int h
2014-05-30 10:09:11
1270
原创 漫游计算机系统
Oh,This is OS之漫游计算机系统不可否认,计算机是20世纪最为重要的发明,从计算机诞生的那天起,他就无时无刻不在影响着我们每个人的生活,也就是说,下面这句话的回答肯定是否定的:没有计算机,你能活么?但是究其根本,我个人认为,计算机之所以能够完美的“侵入”到人类生活的各个方面,主要还是在于其高效永久的信息存储(当然了,这是理论上的,存储信息的介质坏了,我就无话可说了)。那我不禁
2014-05-30 09:56:35
1394
原创 JVM 二进制字节码指令汇总
序号字节码 助记符 指令含义Constants:0x00 ~ 0x14,00~20,与常量操作相关 00 0x00 nop 什么都不做。 01
2014-05-28 15:55:45
1097
原创 Understanding CMS GC Logs
CMS GC with -XX:+PrintGCDetails and -XX:+PrintGCTimeStamps prints a lot of information. Understanding this information can help in fine tuning various parameters of the application and CMS to achieve
2014-05-27 17:17:49
830
原创 Win7 X86_64 下构建OpenJDK7u40 64bit调试环境
1.安装DXSDK 本文DXSDK的安装路径为:D:\Program Files (x86)\MSDXSDK\Microsoft DirectX SDK (June 2010) 2.安装Visual Studio 2010 && WindowsSDK 7.1 X64 本文VS2010的安装路径为:D:\Program Files (x86)\MSVisualStu
2014-05-27 16:58:44
3586
原创 图解Win7下构建OpenJDK7u40 32bit调试环境
0.说明 在Windows平台编译并调试OpenJDK7相对比较复杂,感兴趣的读者可以先按照本文的步骤在虚拟机环境下进行,然后再转移到物理机上。 或则,将虚拟机环境下构建好了的Cygwin和OpenJDK7工程打包到物理机上,然后配置相应的环境变量即可。 本文是在VMware Workstation的Windows 7 Ultimate en x86环境下编译并调试O
2014-05-26 20:25:49
4553
原创 JVM 常用参数
参数名称含义默认值相关描述内存管理参数-Xms初始堆大小物理内存的1/64(默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.-Xmx最大堆大小物理内存的1/4(默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到
2014-05-26 10:16:05
1397
原创 Understanding G1 GC Logs
Thepurpose of this post is to explain the meaning of GC logsgenerated with some tracing and diagnostic options for G1 GC. We willtake a look at the output generated with PrintGCDetails which is apro
2014-05-22 14:34:19
2282
原创 G1 && PermGen && Metaspace
We received some questions around the G1 garbage collector and the use of Permanent Generation with it. There seems to be some confusion that the Hotspot JVM does not use permanent generation when G
2014-05-22 14:23:22
1326
原创 bump-the-pointer VS TLABs
Fast Allocation As you will see from the garbage collector descriptions below, in many cases there are large contiguous blocks of memory available from which to allocate objects. Allocations from
2014-05-13 17:19:06
1235
原创 HotSpot 垃圾回收算法简介
HotSpot垃圾回收机制 分代回收垃圾回收算法 复制 将A空间中的可达对象复制到另一块空白空间B中,然后回收A的整个空间。(必须有一块空白空间,空间利用率不是很高,但是回收快)。 标记清除 遍历A空间,标记其中的可达对象,然后在遍历A空间,清除其中的不可达对象。(空间利用率高,但是会产生碎片,而且需要两次遍历空间A)。
2014-05-13 17:02:15
1055
原创 学Java的人都应该知道的那些事儿
第二章 对象与内存控制Static 对于static 关键字而言,从饲义上来看,它是"静态"的意思。但从Java 程序的角度来看,static 的作用就是将实例成员变为类成员。static 只能修饰在类里定义的成员部分 。包括成员变量、方法、内部类、初始化块、内部枚举类。如果没有使用static修饰这些类里的成员,这里成员属于该类的实例;如果使用了static修饰,这些成员就
2014-05-06 16:28:17
1061
转载 Hadoop小文件优化
先来了解一下Hadoop中何为小文件:小文件指的是那些文件大小要比HDFS的块大小(在Hadoop1.x的时候默认块大小64M,可以通过dfs.blocksize来设置;但是到了Hadoop 2.x的时候默认块大小为128MB了,可以通过dfs.block.size设置)小的多的文件。如果在HDFS中存储小文件,那么在HDFS中肯定会含有许许多多这样的小文件(不然就不会用hadoop了)。而HDF
2014-04-28 16:20:25
925
转载 Hadoop作业JVM堆大小设置优化
前段时间,公司Hadoop集群整体的负载很高,查了一下原因,发现原来是客户端那边在每一个作业上擅自配置了很大的堆空间,从而导致集群负载很高。下面我就来讲讲怎么来现在客户端那边的JVM堆大小的设置。 我们知道,在mapred-site.xml配置文件里面有个mapred.child.java.opts配置,专门来配置一些诸如堆、垃圾回收之类的。看下下面的配置:
2014-04-28 16:18:27
1109
转载 Hadoop优化与调整
io.file.buffer.size hadoop访问文件的IO操作都需要通过代码库。因此,在很多情况下,io.file.buffer.size都被用来设置缓存的大小。不论是对硬盘或者是网络操作来讲,较大的缓存都可以提供更高的数据传输,但这也就意味着更大的内存消耗和延迟。这个参数要设置为系统页面大小的倍数,以byte为单位,默认值是4KB,一般情况下,可以设置为64KB(65536byte
2014-04-28 15:59:42
619
转载 操作系统级别对Hadoop性能优化
由于Hadoop自身的一些特点,它只适合用于将Linux作为操作系统的生产环境。在实际应用场景中,管理员适当对Linux内核参数进行调优,可在一定程度上提高作业的运行效率,比较有用的调整选项如下。一、增大同时打开的文件描述符和网络连接上限 在Hadoop集群中,由于涉及的作业和任务数目非常多,对于某个节点,由于操作系统内核在文件描述符和网络连接数目等方面的限制,大量的文件读写操作和网络连
2014-04-28 15:53:03
624
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人