`
mryufeng
  • 浏览: 982230 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JVM 64位pointer compress, Erlang呢?

阅读更多
前端时间看到JVM的 64 pointer compress技术,蛮多感慨的。具体的可以 google
64位 pointer compress 来了解更多。

好不容易从32位系统中逃脱,解决了4G内存的问题,而且64位的cpu更多的寄存器, 可以带来更好的性能。但是怎么又碰到问题了。64位的系统,64位的指针,意味着更多的数据访问, cpu速度是提高了,但是内存的带宽和访问速度没有大的提高。 而且内存的访问速度和cpu的cycle差几个数量级别,所以对于普通的网络程序来讲,大部分是处理信息的变形,也就是说是把内存里面的数据从一个形式变成另外一个形式。 cpu性能的提高对这种程序来讲 影响不是很大。倒是因为数据的量加大了1倍, 导致整体的性能降低了百分几十。 实际的硬件系统也没有那么多内存,一般都是16G以下,所以才有人去想在64位系统下,用36位的指针,减少内存的访问。

erlang的系统基本上是个网络程序,所以这个问题就非常突出。 目前没看到otp vm的这方面的打算, 我还是乖乖的用我的32位系统。
分享到:
评论
6 楼 sdh5724 2010-05-04  
mryufeng 写道
wkoffee 写道
hotspot里compressed oop可以支持到32G的heap,因为在64位系统里一般指针都有8字节对齐的要求,这样最后3位都是0,32位压缩指针可以表示的范围是4G*8=32G

实际上compressedOop是提高性能的,打开这个选项benchmark大概能有5%的提高,主要是cache miss的降低和gc的压力减少

对的 指针小了 访问的内存也就少了 速度就快了


我在我的应用上, 测试的时候, 发现大约提高了20%。。。。很神奇。。。
5 楼 mryufeng 2010-04-16  
wkoffee 写道
hotspot里compressed oop可以支持到32G的heap,因为在64位系统里一般指针都有8字节对齐的要求,这样最后3位都是0,32位压缩指针可以表示的范围是4G*8=32G

实际上compressedOop是提高性能的,打开这个选项benchmark大概能有5%的提高,主要是cache miss的降低和gc的压力减少

对的 指针小了 访问的内存也就少了 速度就快了
4 楼 wkoffee 2010-04-15  
hotspot里compressed oop可以支持到32G的heap,因为在64位系统里一般指针都有8字节对齐的要求,这样最后3位都是0,32位压缩指针可以表示的范围是4G*8=32G

实际上compressedOop是提高性能的,打开这个选项benchmark大概能有5%的提高,主要是cache miss的降低和gc的压力减少
3 楼 mryufeng 2010-04-15  
R14A halfword已经支持了 在64位机器上 eterm的指针还是用32位!!!
2 楼 ray_linn 2010-04-15  
ms 指针压缩是为了减少内存占用,而不是提高速度。比如一个链表,previous 和 next,都是一个指针,所有会占用2*64bit,即16byte的内存,所以采用某种形式来减少内存占用,通常的idea就是利用offset,某个基地址的偏移量,比如32bit偏移量,每个链表节点,只消耗8byte内存,但偏移量是以消耗CPU计算时间和地址空间长度来换取内存减少,真要访问内存的某个数据,指针还是会被还原回最初的状态。


对于网路应用,也有重要的硬件,比如TOE网卡
1 楼 linkerlin 2010-04-15  
要压缩指针,一个VM的堆必然要小于4G。
我觉得可以通过Vmware之类让多份x86-32的OS的跑在x64平台上,以便方便的实现一机多OS,以及“指针压缩”了。

相关推荐

    SAP JVM 8.1 64 bits

    SAP JVM 8.1 64位是一个专为SAP系统设计的Java虚拟机,它基于Oracle的Java Development Kit (JDK) 进行优化,以满足SAP应用程序的特定需求。SAP JVM旨在提高性能、可靠性和安全性,同时确保与SAP产品的无缝集成。...

    java 可视化代码生成工具64位,适用64位jvm

    Java可视化代码生成工具是一款专为64位Java虚拟机(JVM)设计的应用,它能够极大地提高开发效率,尤其在处理MySQL数据库时。这款工具具备自动化功能,能够自动生成包括Hibernate实体类、MyBatis接口及实现、Service...

    SAP JVM 7.1 64 bits

    SAP JVM 7.1 64位是一个专为SAP系统设计的Java虚拟机,它主要用于运行SAP的应用程序和服务。这个版本是基于64位架构,这意味着它可以处理更大的内存,更适合处理大规模的企业级数据和复杂计算。下面将详细讨论SAP ...

    jvm 详细介绍,了解jvm各个组成部分和功能

    ### JVM 详细介绍:掌握 JVM 的各个组成部分与功能 #### 一、Java 源文件编译及执行 Java 应用程序的核心在于源文件的编译与执行。不同于 C/C++ 这类需要针对不同平台进行编译的语言,Java 采用了一种更为灵活的...

    JVM与GC调优课程视频

    JVM与GC调优课程视频 〖课程介绍〗: JVM与GC调优课程视频 〖课程目录〗: 1.笔记/ ├── 第1篇-字节码篇.png?x-oss-process=style/pnp8 ├── 第2篇-类的加载篇.png?x-oss-process=style/pnp8 ├── 第3篇-运行时...

    SAP JVM 4.1 64 bits

    SAP JVM 4.1 64位是一个专为SAP系统设计的Java虚拟机,它主要用于运行SAP的应用程序和服务。此版本是为64位操作系统优化的,旨在提供更好的性能和内存管理能力,特别是在处理大数据量和复杂计算场景时。 首先,我们...

    Erlang Programming 导读.pdf

    - **Erlang 虚拟机 (Erlang Virtual Machine, VM)**: 类似于 Java 虚拟机 (JVM),Erlang VM 是运行 Erlang 程序的基础环境。在 Windows 或 UNIX 系统上安装 Erlang 后,用户就可以在 Erlang VM 上运行 .beam 文件。 ...

    推荐一些JVM原理,JVM调优,JVM内存模型,JAVA并发 电子书1

    标题中提到了JVM原理、JVM调优、JVM内存模型和JAVA并发,这些都是Java虚拟机(JVM)相关的核心概念。JVM是运行Java字节码的虚拟计算机,为Java提供了一个跨平台的环境,确保Java程序可以在不同的操作系统上运行而...

    jdk,jvm源码

    Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为Java应用程序提供了一个跨平台的运行环境。JDK(Java Development Kit)包含了开发和运行Java程序所需的所有工具,包括JVM。当我们谈论"jdk,jvm...

    [] - 2022-09-21 面试官:你工作中做过 JVM 调优吗?怎么做的?.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能

    erlang-java聊天

    Jinterface是Erlang OTP系统的一部分,它提供了一个接口,使得Erlang进程可以与Java虚拟机(JVM)中的对象进行通信。这种通信可能涉及数据交换、调用Java方法或触发Erlang过程。 **聊天程序架构** - **服务器端**:...

    Tomcat 55 Tomcat 6 安装64 JVM

    首先,确保你的操作系统是64位的,因为只有64位的操作系统才能运行64位的JVM。你可以前往Oracle的官方网站(https://www.oracle.com/java/technologies/javase-jdk-downloads.html)下载适合你的操作系统的64位Java ...

    程序员开发erlang的资料

    5. **Jinterface**:Jinterface是Erlang和Java之间的互操作库,它允许Erlang进程与Java虚拟机(JVM)中的对象进行通信。这对于既有Java基础又想利用Erlang优势的开发者来说,是一个强大的工具。 6. **Eclipse插件...

    jvm 启动过程 JVM 原理

    Java虚拟机(JVM)是Java程序运行的基础,它是一个抽象的计算机系统,负责执行Java字节码。本文将深入探讨JVM的启动过程及其基本原理。 首先,我们需要理解JVM的基本概念。JVM是Java Virtual Machine的缩写,它是...

    erlang调用java

    `Jinterface`允许`Erlang`进程和`Java`虚拟机(JVM)之间进行消息传递,实现跨语言的通信。 1. **设置环境**:在使用`Jinterface`之前,确保你的`Erlang`系统已经配置了对`Java`的支持。这通常意味着在`Erlang`的...

    JVM图解-JVM指令-JVM原型图.rar

    在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...

    JVM中文指令手册.pdf

    JVM(Java Virtual Machine,Java虚拟机)是运行所有Java程序的假想计算机,是Java程序的运行环境,负责执行指令、管理数据、内存、寄存器等,是实现Java跨平台特性的关键部分。JVM指令手册详细记录了JVM的所有操作...

    jvm.dll文件

    `jvm.dll` 文件是64位或32位的,与你的操作系统版本需要匹配。如果你的系统是64位的,但你安装的是32位的JDK,或者反之,就会导致这个问题。因此,确保你的JDK版本与操作系统架构相一致至关重要。例如,如果你的电脑...

    JVM常见面试题.pdf

    针对 Java 程序员学习 JVM 的 60 道面试题: 1. **JVM 的作用是什么?** 2. **JVM 的内存结构可分为哪几部分?请描述每个部分。** 3. **什么是垃圾回收(Garbage Collection)?JVM 是如何进行垃圾回收的?** 4. **...

Global site tag (gtag.js) - Google Analytics