【java – Windows上的内存使用量不断增长】教程文章相关的互联网学习教程文章

面试官,Java8中JVM内存结构变了,永久代到元空间【图】

在Java8和以后版本中JVM的内存结构慢慢发生了变化。作为面试官如果你还不知道,那么面试过程中是不是有些露怯?作为面试者,如果知晓这些变化,又将成为面试中的亮点。 如果在网络上搜索JVM内存结构,90%的可能会搜到Java7及以前的内存图,本篇文章将会对JVM内存结构再次细化,深入理解Java8之后的内部变化。现在意”的好处了吧。在这里可以不断的刷新你的知识和认知。 JVM内存结构的细化 来看一下JVM中的内存结构图。为了更细化的...

Java内存大家都知道,但你知道要怎么管理Java内存吗?【图】

前言深入研究Java内存管理,将增强你对堆如何工作、引用类型和垃圾回收的认识。你可能会思考,如果你使用Java编程,关于内存如何工作你需要了解哪些哪些信息?Java可以进行自动内存管理,而且有一个很好的、安静的垃圾回收器,它在后台工作,清理那些未使用的对象并释放一些内存。因此,作为一名Java程序员,你不需要再为销毁无用对象这样的问题而烦恼了。但是,虽然这个过程在Java中是自动的,它也不能保证任何事情。由于不知道垃圾...

java-Eclipse ADT插件-图形布局闪烁并占用内存

由于没有回复other question,我不确定它是否已经被注意到,因为这是一个开放的问题,我再次发布到这里是希望有人能帮助我;) 当我在ADT的图形布局编辑器中执行任何操作时,布局按钮(水平居中,垂直居中等)开始闪烁约10秒钟.在这段时间内,Eclipse JVM使用的RAM增加了大约200 MiB.在我完全关闭Eclipse之前,不会随时释放此RAM.这特别令人讨厌,因为每个Eclipse会话我只能执行大约6个操作,直到必须重新启动它才能再次释放RAM. 环境:Windows...

java-字符串常量池内存扇区和垃圾回收

我在网站How is the java memory pool divided?上阅读了此问题,我想知道“字符串常量池”属于哪个扇区? 而且池中的String文字是否曾经被GC过? intern()方法从池中返回String文字的基本链接. 如果该池确实被GC,那么它对字符串池的想法适得其反吗?将再次创建新的字符串文字,从而使GC无效. (假设池中仅存在一组特定的文字,它们永远不会过时,迟早需要它们)解决方法:据我所知,字符串文字最终出现在非Heap JVM内存的“ Perm Gen”部分...

预测Java内存

有没有办法预测我的Java程序要占用多少内存?我来自C的背景,我在类上实现了诸如“ size_in_bytes()”之类的方法,并且可以相当准确地预测应用程序的运行时内存占用量.现在我处在Java世界中,这并不那么容易…有共享的引用,池,不可变对象…但是我仍然希望能够在看一下之前预测一下我的内存占用量进程大小位于顶部.解决方法:如果使用检测API,则可以检查对象的大小.使用起来有点棘手-它需要一个“ premain”方法和额外的VM参数-但是网络...

使用内存不足错误Java编写大型XML文件

我正在为Android开发一个应用程序,我需要创建一个相当大的XML文件. 我已经用DOM文档尝试过此操作,但是因为它驻留在内存中,所以会引发“内存不足”错误. 有人可以提出替代解决方案吗?这是一个从头开始创建的XML文件.解决方法:我会逐步将XML写入Stream或Writer,以遍历要转换为XML的数据.这样,您不需要比原始数据多得多的内存.

Java-快速编写:内存映射文件与BufferedWriter

有人基准测试过吗?我想尽可能快地写入磁盘,以最大程度地减少写入调用的延迟.我想知道(通过buffer.put())写入内存映射的缓冲区是否比仅缓冲Java端中的内容并在缓冲区已满时刷新到fileChannel更快.这样,一旦缓冲区变满,我将只进行系统调用(FileChannel.write).我不确定将一些字节写入MappedByteBuffer时会发生什么,换句话说,是否完成系统调用. 使用缓冲方法,我将能够以16,32或64k的块写入磁盘,我认为这是最佳选择.缓冲的缺点是,如果...

java-在代码中使用硬编码的整数值是出于内存考虑的一种不良做法【代码】

考虑一下Java中的以下简单代码:void func(String test) {if(str.length() > 0){//do something} }是否执行str.length()> 0表示每次调用此函数时,将分配4个字节的内存以存储0个整数值?解决方法:运行此函数所需的内存(包括0)将属于已编译程序(.class / .jar / .apk)的一部分,与该函数运行了多少次无关.即使内联函数,代码也会根据调用该函数的不同位置而增加,并且在运行时没有内存分配. 同时有2条评论 >硬编码存在更大的问题.>我怀疑...

同时在多个Java实例上自动执行JAVA内存分析

我对开发JAVA相对没有经验,我希望能得到一些建议. 我有一个模块化的JAVA服务器应用程序设置,其中的高级服务充当与8个低级服务进行通信的前端接口. 在生产中,每个服务都托管在自己的计算机上. 我正在寻找一个标准的SE开发环境,该环境在本地启动所有实例.我当前正在使用eclipse和JVMmonitor. 我当前的工作流程包括手动启动每个服务,然后通过eclipse手动触发每个服务的监视过程.这个工作流程可以完成工作,但是我敢肯定有人遇到过一个更...

JRuby:从机架应用程序调用Java代码并将其保存在内存中【代码】

我目前了解Java和Ruby,但从未使用过JRuby.我想在Rack(sinatra)Web应用程序中使用一些RAM和计算密集型Java代码.特别是,此Java代码将大约200MB的数据加载到RAM中,并提供了使用此内存数据进行各种计算的方法. 我知道可以在JRuby中从Ruby调用Java代码,但就我而言,还有一个附加要求:该Java代码需要加载一次,保存在内存中,并可以作为sinatra代码的共享资源使用(被多个Web请求触发). 问题 >这样的设置是否可能?>我需要做些什么来完成它?...

JAVA内存溢出解决方案(java.lang.OutOfMemoryError: PermGen space)【代码】【图】

1.在 apache-tomcat-7.0.70\bin\catalina.bat (Linux 系统则在catalina.sh) 文件下的 echo Using CATALINA_BASE: "%CATALINA_BASE%" 上面插入以下代码1 set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=256M -XX:MaxPermSize=512m2.在eclispe 中的window-->Preferences-->java-->Installed JRES-->Edit-->Defalut VM arguments 下添加:-Xms64m -Xmx256m 3.在eclispe 下的run-->Debug Configurations--> Apache Tomcat-->Ar...

java-如何将JVM的内存大小增加到1GB以上

当我尝试将-Xms和-Xmx值设置为大于1gb时,出现错误:Error occurred during initialization of VM我的电脑有8GB的RAM. 我需要在内存中保存和处理大量数据.解决方法:32位JVM的最大堆大小最多为4GB-在某些系统中,由于各种技术原因(例如,需要连续内存),它的堆大小较小.假设您使用的是64位计算机,请尝试使用64位版本. 原因是您可以使用32位指向的最大地址数是2 ^ 32,即4GB.用户无法真正访问该理论最大值,因为JVM需要Klass文件(代码的内部...

在Java运行时中测量一段代码的内存使用情况,以此作为服务的一项持续功能【代码】

我有一个项目,在该项目中,我需要能够测量以文本形式接收并在运行时使用Java Compiler API进行编译的函数在CPU和内存空间中的效率. 我正在使用ThreadMXBean来衡量运行时间.有更好/更精确的方法吗?ManagementFactory.getThreadMXBean().getCurrentThreadCpuTime();我需要的是关于如何测量所用内存的建议.理想情况下,我想了解每项任务及其规模.但是我可以精确计算代码使用的字节数. 每一段代码都需要自动编译,测试,运行和评估.因此,使...

Java ArrayList连续的内存分配仅用于引用?

我想分配一个原始数据类型对象的数组列表,例如int,char等(不是数组,因为它将来会增长,可能不是线性的),但是需要存储在RAM(jvm管理堆)中的连续内存位置.但是自从我为ex的原始数据类型声明ArrayList以来.用于int的ArrayList,在内部jvm映射到ArrayList<整数>对象的类型. 现在的问题是ArrayList保留对存储在jvm受管内存空间中不同位置的对象的连续引用.但是我最初的想法是要连续存储实际的数据对象,而不仅仅是参考!但是我不知道如何实...

java-我的应用程序占用了我设备上的250mb内存.当我进行堆转储并对其进行分析时.它说堆大小约为7mb

是否有另一个正在使用的内存不在堆转储中显示?我在Eclipse上使用Memory Analyzer.首先,我使用DDMS和内存分析器选择来转储堆.它仅显示堆的大小为7mb,直方图基本上告诉我一切都很好.但是,我已经在设备上下载了几个内存监视应用程序,他们都说我的应用程序占用了250mb的内存并且还在不断攀升. 我还能如何找出它占用这么多内存的原因?解决方法:内存测量应用不是很值得,例如Dianne Hackborn:Note that memory usage on modern operati...