文档章节

64位jvm的指针膨胀 和 数据补白

treenewtreenew
 treenewtreenew
发布于 2016/12/12 17:58
字数 341
阅读 129
收藏 0

指针膨胀:64位jvm寻址范围较32位变成了64位,叫做指针膨胀;

64位数据补白:数据在64位jvm中存储较之32位jvm需要对数据位进行对齐补白;

因为以上原因64位jvm通常需要更多的内存,比32位jvm多10%到30%,在主流测试环境中64位jvm测试速度也比32位jvm落后,性能差15%左右。

所以很多工程师在采用32位集群方式部署应用,但这种方案也有缺陷: 1、集群节点可能竞争全局资源; 2、一些资源池比如连接池可能利用率不高,因为一般情况下各个节点都有自己的连接池,可能出现有的节点连接池满了,有的节点连接池有较大空余;可以用JNDI改善此类情况但又有性能开销和复杂度。 3、各个节点最高4G的限制,windows下只有2G,堆内存最大可能为1.5G左右。

在jdk1.6 update14之后,sun提供了指针压缩功能(-XX:+ UseCompressedOops),执行代码时动态加入压缩指令以减少内存消耗,但同时会增加代码数量,所有heap内的指向heap内对象的指针都会压缩。

© 著作权归作者所有

共有 人打赏支持
treenewtreenew
粉丝 3
博文 54
码字总数 51799
作品 0
昌平
私信 提问
JVM 32bit 64bit区别

Java程序运行在64位机器上会付出比较大的代价: 1,内存问题 1)内存寻址范围较32位扩大了1倍,也就是指针膨胀; 2)数据类型在64位中存储需要对齐补白; 以上两个原因,导致64位较32位需要消...

克温s
2015/12/24
70
0
Java并发--synchronized实现原理及锁优化

注:本文中的部分内容摘抄自他人博客,如有侵权,请联系我,侵删~ 本篇博客主要讲述 synchronized 关键字的实现原理以及 JDK 1.6 后对 synchronized 的种种优化。synchronized 的使用不再赘述...

珩翊
04/27
0
0
JVM优化之压缩普通对象指针(CompressedOops)

通常64位JVM消耗的内存会比32位的大1.5倍,这是因为对象指针在64位架构下,长度会翻倍(更宽的寻址)。 对于那些将要从32位平台移植到64位的应用来说,平白无辜多了1/2的内存占用,这是开发者...

小编辑
2010/03/11
509
1
11-《深度拆解JVM》之Java对象的内存布局

一、问题引入 在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Unsafe.allocateInstance 方法来新建对...

飞鱼说编程
10/23
0
0
如何计算Java对象所占内存的大小

摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型、...

阿里云云栖社区
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

内存性能的正确解读

一台服务器,不管是物理机还是虚拟机,必不可少的就是内存,内存的性能又是如何来衡量呢。 1. 内存与缓存 现在比较新的CPU一般都有三级缓存,L1 Cache(32KB-256KB),L2 Cache(128KB-2MB)...

阿里云官方博客
6分钟前
0
0
并发+超时示例

func installMantisAgent() {log.Println("begin auto repair mantis agent")num := 0succNum := 0failNum := 0var Q *queue.Queueswitch g.Config().RepairType {ca......

我爱吃葱花
19分钟前
1
0
增加一列自增id

ALTER TABLE xxxx ADD iSiteId INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;

colin_86
28分钟前
3
0
安卓代码混淆

Proguard是安卓提供的方便开发者对代码和apk进行保护和精简的工具,可在SDK/tools文件夹下找到。 proguard的作用 : 1,代码混淆 2,精简代码,删掉没有用到的代码,减小apk的体积。 使用场景...

whoisliang
37分钟前
1
0
配置Tomcat虚拟主机

12月13日任务 16.4 配置Tomcat监听80端口 16.5/16.6/16.7 配置Tomcat虚拟主机 16.8 Tomcat日志 配置tomcat监听80端口 默认tomcat监听的是8080端口,如果想直接输入ip就访问到网页,就需要进行...

robertt15
43分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部