导航:首页 > 编程语言 > java程序虚拟内存

java程序虚拟内存

发布时间:2024-04-03 04:12:09

『壹』 java虚拟机内存的设置,在windows下设置,双击执行jar文件时有足够内存,不用命令行执行jar文件

我明白楼主的意思,实际上很可能是因为循环的问题导致jvm虚拟内存不够导致的溢出。一般指定jvm运行的虚拟内存都是在诸如tomcat或者weblogic之类的中间件或者eclipse或者jboss之类的东西,但是楼主的是一个jar,我推荐这样做,新建一个文件,命名为XX.bat,里面写java -jar -Xms128m -Xmx128m XX.jar,双击bat文件即可执行jar,如果你需要定时运行这个jar也很容易,将bat加入到计划任务中即可。

『贰』 4g内纯java可以设置多少虚拟内存

建议将初始大小和最大值同时设置为你物理内存的1-2倍,比如:4G内存先设置为4096MB(4G的1倍不够在加,初始大小和最大值设置要一致)。
设置虚拟内存方法:右击我的电脑/属性/高级/性能中的设置/高级/虚拟内存中的更改/选自定义大小,在初始大小和最大值,同时设为你的物理内存的1-2倍。
如果你的内存是4G,就将初始大小和最大值同时设置为4096MB。
设置后需按“设置”按钮,然后再按确定和应用,重新启动电脑设置生效。

『叁』 java -jar my.jar 调大虚拟内存

1:java -Xmx1024m -jar my.jar 与 java -Xms512m -Xmx1024m -jar my.jar 有什么区别
答复:-Xms 最小值 -Xmx 最大值
2:这个虚拟内存最高能调到多少?(2G内存的xp)
答复:1536MB

『肆』 Java 以下两个要求 怎么在Java中以程序的方式实现 (围绕CORBA和IOR)

最近在看JAVANIO 的相关知识,了解一下IO的底层实现原理。

IO涉及到的底层的概念大致如下:

1) 缓冲区操作。2) 内核空间与用户空间。3) 虚拟内存。4) 分页技术。

一,虚拟存储器

虚拟存储器是硬件异常(缺页异常)、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每个进程提供了一个大的、一致的和私有的地址空间。

虚拟存储器的三大能力:①将主存看成是一个存储在磁盘上的地址空间的高速缓存。②为每个进程提供了一个一致的地址空间。③保护每个进程的地址空间不被其他进程破坏。

虚拟内存的两大好处:① 一个以上的虚拟地址可指向同一个物理内存地址。② 虚拟内存空间可大于实际可用的硬件内存。

二,用户空间与内核空间

设虚拟地址为32位,那么虚拟地址空间的范围为0~4G。操作系统将这4G分为二部分,将最高的1G字节(虚拟地址范围为:0xC0000000-0xFFFFFFFF)供内核使用,称为内核空间。而将较低的3G字节供各个进程使用,称为用户空间。

每个进程可以通过系统调用进入内核,因为内核是由所有的进程共享的。对于每一个具体的进程,它看到的都是4G大小的虚拟地址空间,即相当于每个进程都拥有一个4G大小的虚拟地址空间。

三,IO操作

一般IO缓冲区操作:

1) 用户进程使用read()系统调用,要求其用户空间的缓冲区被填满。

2) 内核向磁盘控制器硬件发命令,要求从磁盘读入数据。

3) 磁盘控制器以DMA方式(数据不经过CPU)把数据复制到内核缓冲区。

4) 内核将数据从内核缓冲区复制到用户进程发起read()调用时指定的用户缓冲区。

四,JAVA中的IO,本质上是把数据移进或者移出缓冲区。

read()和write()系统调用完成的作用是:把内核缓冲区映射的物理内存空间中的数据 拷贝到 用户缓冲区映射的物理内存空间中。

因此,当使用内存映射IO时,可视为:用户进程直接把文件数据当作内存,也就不需要使用read()或write()系统调用了。

当发起一个read()系统调用时,根据待读取的数据的位置生成一个虚拟地址(用户进程使用的是虚拟地址),由MMU转换成物理地址,若内核中没有相应的数据,产生一个缺页请求,内核负责页面调入从而将数据从磁盘读取到内核缓冲区映射的物理内存中。对用户程序而言,这一切都是在不知不觉中进行。

总之,从根本上讲数据从磁盘装入内存是以页为单位通过分页技术装入内存的。

五,JAVA NIO中的直接缓存和非直接缓存

直接缓存:不是分配于堆上的存储,位于JVM之外,它不受JAVA的GC管理,相当于内核缓冲区。非直接缓存:建立在JAVA堆上的缓存,受JVM管理,相当于用户缓冲区。

根据上面第三点,将直接缓存中的数据写入通道的速度要快于非直接缓存。因为,连接到通道的另一端是文件(磁盘,FileChannel)或者网络(Socket通道),这些都是某种形式上的硬件。那么,对于非直接缓存而言,数据从缓冲区传递到硬件,要经过内核缓冲区中转。而对于直接缓存而言,就不需要了,因为直接缓存已经直接映射到内核缓冲区了。

『伍』 myeclipse 怎么改java虚拟内存

有几种解决方法:
1. 从Intalled JREs里修改;window->Preferences->Java->Installed JREs,选择当前的JRE,然后edit它;在新窗口里设置Default VM Arguments为 -Xms128M -Xmx512M即可;这个设置应该对所有的工程都有效;
2. 如果仅仅是想对某个工程的有效的话,从Debug... 或Run...里修改,在(x)=Arguments里设置和上面相同的参数即可;
3. 如果是Tomcat的话,window->Preferences->Application Servers->Tomcat->Tomcat 6.x,选择JDK设置即可;

『陆』 一个开发java的人需要多大内存

最少是4G。
分析:
java开发需要安装jdk、eclipse、oracle等软件;
java运行需要tomcat 、JVM和程序的运行内存;
以上的这版些软件基本都运行起来的权话,大概需要2G多内存,而电脑本身还需要一部分,所以最低配置也得4G,建议开发用6G或者是8G。

『柒』 运行jar文件前,我需要设置java虚拟机虚拟内存

设置JVM内存的参数有四个:
-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-Xmn Java Heap Young区大小,不熟悉最好保留默认值;
-Xss 每个线程的Stack大小,不熟悉最好保留默认值;
2. 如何设置JVM内存分配:
(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):
java -Xmx128m -Xms64m -Xmn32m -Xss16m Test
(2)当在集成开发环境下(如eclipse)启动并使用JVM时:
a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs
-Xms40m
-Xmx256m
-vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
此处设置的参数值可以通过以下配置在开发工具的状态栏显示:
在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true
修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:
-debug
options
-vm
javaw.exe
重新启动eclipse,就可以看到下方状态条多了JVM信息。

『捌』 如何解决 用于 actionscript 3.0 编译的 java 虚拟机内存不足

阅读全文

与java程序虚拟内存相关的资料

热点内容
oppo手机怎么连接电脑传输数据 浏览:624
word删除尾注分隔符 浏览:773
公告质疑需要哪些文件 浏览:608
数据库模型是干什么的 浏览:404
win10的驱动怎么安装驱动 浏览:320
word文件水印怎么取消 浏览:443
rhel6的镜像文件在哪里下载 浏览:571
成功正能量微信头像 浏览:848
wps表格如何恢复数据 浏览:264
linuxc静态库创建 浏览:838
u盘有微信文件但微信恢复不了 浏览:585
苹果的网站数据是什么 浏览:22
ps滚字教程 浏览:237
win7网络邻居如何保存ftp 浏览:186
安卓客户端代理服务器 浏览:572
编程用苹果 浏览:659
51虚拟机的文件管理在哪里 浏览:13
win10系统有没有便签 浏览:722
java引用传递和值传递 浏览:109
oracle下载安装教程 浏览:854

友情链接