在已经安装的SUN JRE Client目录中有一个classes.jsa文件,这个文件只在client模式中存在,server中是不存在。
http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html
类数据共享特性的目标是为了减少应用程序的启动时间和内存占用。安装进程从系统 jar
文件中把一组类加载到私有的内部表示,然后把那个表示转储到“共享存档”文件。在后续的 JVM
调用期间,那个共享存档映射在内存中,从而减少了加载那些类的开销,并允许在多个 JVM 进程间共享这些类的许多 JVM 元数据。有关更多信息,
概述
类数据共享(CDS)是为了减少Java应用程序启动时间而在J2SE5.0增加的新特性,尤其对于较小的应用程序。当使用Sun提供的安装程序安装
JRE在32位平台上的时候,安装程序从系统jar文件中加载一套类到一个私有的内部表示,并且把该表示存放在一个叫做“shared
archive”的文件中。类数据共享在Microsoft Windows 95/98/ME中不被支持。如果没有使用Sun
JRE安装程序,可以按照以下的说明进行手动设置。在JVM的并发调用中,上述共享文档是内存映射的,节省了那些类文件的加载成本,并且允许在多个JVM
进程之间共享这些类的许多JVM元数据。
在J2SE5.0中,类数据共享仅仅对Java HotSpot Client VM进行支持,并且仅仅只对串行垃圾收集器。
在5.0发布版本中包含CDS的主要目的是减少启动时间。CDS能够对比较小的应用程序比较好的作用,因为它除去一项固定成本:某些核心类的加载成本。应用程序相对于它使用核心类越小的话,能够节省更多的启动时间。
能够通过两种方式来减少新建JVM实例的开销。首先,一部分的共享档案,当前通常是5-6M,进行了只读映射,因此能够在多个JVM进程之间进行共享。前
面的那些数据会复制到每个虚拟机实例。其次,因为共享档案使用一种Java Hotspot
VM使用的那种结构来容纳类数据,所以不再需要额外的内容开销在rt.jar中访问原始类信息。这些开销节省使得可以在同一个机器上并行运行更多的应用程
序。在Microsoft
Windows,关于一个进程的初始,使用多个工具进行测试后,可能会出现增长的情况,因为有大量的页面文件被映射到进程的地址空间。这部分的开销通过对
rt.jar占有所需内存的减少来弥补的。减少初始开销保持高的优先级。
重建共享档案
在有些情况下,系统管理员可能需要重新生成共享档案。仅仅针对Solaris平台上典型情况:当J2SE程序包是通过网络安装到一台机器上,并且安装源和执行安装的机器是两个不同的体系的时候。这些重建指令适用于所有支持平台。
共享档案文件是与虚拟机VM的共享库相关联的。在Unix平台,它用jre/lib/[arch]/client/classes.jsa这个文件储存,
在Microsoft Windows
平台以jre/bin/client/classes.jsa文件储存。如果这个文件已经存在的话,在重新生成之前必须先手动删除。
如果要重新生成档案文件,以管理员身份登陆;在网络环境下,在用J2SE安装机器同一体系平台的机器上登陆,同时确保你能具有对安装目录的写权限。然后执行以下命令:
java -Xshare:dump
关于档案生成情况的信息也会打印出来。
手动控制类数据共享
当使用条件满足的时候,类数据共享特性会自动生效。以下的命令行选项主要用来提示信息和调试目的的,在以后的发布版本里可能会改变活着取消。
-Xshare:off
禁用类数据共享.
-Xshare:on
需要启用类数据共享. 如果因为某些原因不能启用的话,将打印输出一个错误信息并退出.
-Xshare:auto
缺省选项; 在任何可能的情况下启用类数据共享.
分享到:
相关推荐
许多人对虚拟机下Linux共享存在疑问,这里为大家提供详尽的教程
linux虚拟机与windows之间的共享文件夹设置,详细步骤
xftp虚拟机vm与windows文件共享xftp虚拟机vm与windows文件共享xftp虚拟机vm与windows文件共享
网络上大多关于ubuntu虚拟机与win7共享文件的方法已经过时。则是本人亲自整理并配以图片。虚拟机使用的是VMwae8,ubuntu12.04
虚拟机和windows共享文件夹设置 虚拟机和windows共享文件夹设置 虚拟机和windows共享文件夹设置 虚拟机和windows共享文件夹设置 虚拟机和windows共享文件夹设置 虚拟机和windows共享文件夹设置 虚拟机和windows共享...
VMWare虚拟机如何与主机共享文件夹VMWare虚拟机如何与主机共享文件夹(最容易看懂的讲解)附图
Oracle虚拟机与物理机共享文件的方法,在作者电脑上测试通过,不知道对大家有木有用。。
解决了在VMware上安装虚拟机配置简单服务器的远程共享的问题! 可以实现远程操控的基础设置,为需求者提供了远程操控虚拟机的解决办法。
只要不删除或移动MS-DOS系统文件,对MS-DOS虚拟机没有任何损害,轻松实现文件共享和数据交换! 注意:本软件在挂载虚拟硬盘文件(*.vmdk)时,默认为只读格式,如果需要写入文件,一定在挂载文件时将“只读”的单选...
虚拟机mac和宿主机实现共享文件夹,自己写的,可用。
Java虚拟机类加载顺序,Java虚拟机类加载顺序,Java虚拟机类加载顺序
VMware15虚拟机下Ubuntu18 server系统, 创建静态IP共享samba文件夹
很基础的东西,找了很多才发现的,很容易能够让主机和虚拟机之间共享。
虚拟机把描述类的数据从Class文件中加载到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这就是虚拟机加载机制。
VMware WorkStation12虚拟机 Ubuntu Server 共享Windows 文件夹
虚拟机添加共享存储,设置共享磁盘,以便于设置双机资源,
关于java虚拟机的calss文件如何加载的东西,很实用
如何在虚拟机(virtualbox-ubuntu)和主机(win7)之间共享数据,相信很多使用虚拟机的人都很感兴趣,本文是实践的总结,相信会对读者有帮助。
虚拟机文件共享 设置详细步骤 虚拟机文件共享 设置详细步骤 虚拟机文件共享 设置详细步骤
Linux虚拟机下 配置ORACLE Data Guard (phycial-backup) ufida