草庐IT

垃圾箱

全部标签

java - 垃圾收集器是否处理 java 中的静态变量或方法?

我正在创建一个示例演示程序,让我了解如何使用垃圾收集器在Java中释放静态变量和方法的引用?我使用弱引用是为了不阻止垃圾收集器。类样本publicclassSample{privatestaticStringuserName;privatestaticStringpassword;static{userName="GAURAV";password="password";}publicstaticStringgetUserName(){returnuserName;}publicstaticStringgetPassword(){returnpassword;}}类用户importjav

java - 与垃圾收集语言一起使用时,哪种代码的 CPU/内存效率更高?

我有这两段虚拟代码(假设它们是用Java或C#编写的,所有变量都是本地的):代码1:inta;intb=0;for(inti=1;i代码2:intb=0;for(inti=1;i乍一看,我会说这两个代码消耗相同数量的内存,但代码1的CPU效率更高,因为它只创建和分配变量a一次。然后我读到垃圾收集器非常高效,以至于代码2的内存(和CPU?)效率更高:将变量a保留在循环中使其属于Gen0,所以它会是在变量b之前收集的垃圾。因此,当与垃圾收集语言一起使用时,代码2的效率更高。我说得对吗? 最佳答案 几点:int(和其他原语)从不在堆上分配

java - 为什么 Java 垃圾收集器似乎在执行较不积极的运行后不久就进行了积极的运行?

在使用VisualVM监视Java程序时,我注意到垃圾收集器行为中的一个有趣模式。似乎很多时候,在执行“正常”垃圾收集运行之后,GC会执行第二次更密集的cpu运行,这似乎没有额外的效果(更积极的运行后使用的堆与它是在打火机运行之后)。我已经在VisualVM的输出中指出,您可以在其中看到垃圾收集器的运行和相应的堆使用变化。我的问题基本上是垃圾收集器在这里做什么以及为什么?是什么导致它在有大量可用内存时尝试这些真正的cpu密集型运行,并且与较轻的运行相比没有明显的好处?还是我误解了图表?程序的性能并没有真正受到影响,我只是好奇。 最佳答案

java - Maven Jetty 垃圾邮件警告 "scanned from multiple locations"

我发现了一个类似的问题here,但它指向我未使用的插件(maven-failsafe-plugin),并且该解决方案所指的配置不适用于我。问题是因为我已经从更新了我的jetty插件org.eclipse.jettyjetty-maven-plugin9.3.9.v20160517到9.4.11.v20180605,它开始发送数百条警告,例如[WARNING]org.apache.axis2.description.java2wsdl.bytecode.ClassReaderscannedfrommultiplelocations:jar:file:///C:/Users/a076332

java - 识别未被垃圾收集的对象的更好方法?

一言以蔽之我有一个程序随着时间的推移逐渐使用越来越多的内存。我正在使用jmap和jhat来尝试诊断它,但还不够准确。背景该程序是一个长期运行的服务器,由hbase数据存储支持,为其他一些东西提供节俭服务。然而,在运行几天后,它最终会达到分配的堆限制,并且几乎所有时间都花在垃圾收集上来回Swing。似乎在某处保存了大量数据的引用到目前为止我做了什么在摆弄jstat和jconsole之后,我最终使用运行进程的jmap进行堆转储,并通过jhat运行它,简单的数字加起来没有接近内存利用率jmap-F-dump:live,format=b,file=heap.dump12765jmap-F-du

Java 8 元空间垃圾回收

我正在运行的一个Java进程在它运行的头一个小时左右一直表现良好。但是,性能会迅速下降。在分析时,我发现元空间垃圾收集发生得相当频繁,直到小时标记,然后就失去了控制:我很确定我可以使用-XX:MaxMetaspaceSize选项来解决这个问题。但是,我想更多地了解为什么会发生这种行为。我无法想象为什么垃圾收集算法会这样。有没有人对更好的解决方案有解释或建议?谢谢 最佳答案 您可以尝试设置-XX:MaxMetaspaceExpansion=0。这应该在尝试增加元空间之前强制执行完整的GC-释放动态创建的方法/类数据。此外,您可以尝试将

Java 垃圾收集器 G1GC 花费很长时间等待 'Object Copy'(疏散暂停)

我不是Java新手,但我对垃圾回收知之甚少。现在我想通过一些实际经验来改变这种状况。我的目标是延迟时间低于0.3秒,或者在极端情况下0.5秒也可以。我有一个带有-Xmx50gb(-Xms50gb)的应用程序并设置了以下其他GC选项:-XX:+UseG1GC-Xloggc:somewhere.gc.log-XX:+PrintGCDateStamps但现在我偶尔会因为垃圾收集而暂停超过5秒,尽管似乎有足够的可用内存。我发现的一个原因:[GCpause(G1EvacuationPause)(young)42G->40G(48G),5.9409662secs]为什么GCG1还在为此做一个“停止

微信小程序uniapp+vue校园垃圾分类系统django/springboot/php/

在对系统进行功能需求分析,首先要了解系统的使用场合和使用人群。本系统是针对现垃圾分类中的问题而开发的一套微信小程序的校园垃圾分类识别系统。基于小程序的形式完成对管理。本系统分为三个权限:系统管理员、求助人、用户。(1)   系统管理员的功能:管理员登录功能、管理员更改密码、管理员查看整个系统的模块、管理员对用户进行新增、删除。(2)   用户的功能:用户通过注册页面注册、登录修改个人信息。(3)   垃圾桶信息的功能:用户开发对垃圾桶信息进行查看垃圾桶编号、颜色、垃圾类别、位置,以及对垃圾投递。(4)求助人信息的功能:求助人登录后通过添加垃圾求助发布,查看垃圾求助,添加垃圾回收,查看垃圾回收。

java - 如何通过查看 gc 日志查看正在运行的垃圾收集器?

如何通过查看次要和主要收集的gc日志来了解正在运行的垃圾收集器(CMS、并行等)?我无权访问设置为java的命令行选项(appserver的sysadm不会让我看到它们)。我确实有相当详细的gc日志。 最佳答案 GC消息的确切格式取决于JVM版本和JVM设置。您可以在OracletutorialaboutGCtuning查看sample.DefNew是默认收集器。它是串行的还是并行的,选择哪一个取决于JVM版本/设置。您可以使用java-XX:+PrintCommandLineFlags-version查看JDK6中的默认设置。在我

九款常见的 JVM 垃圾回收器

JVM不仅是大厂面试的一个高频问题,也是Java程序员跨入高职级必须掌握的知识点,垃圾回收器作为JVM中核心的一环,了解它的原理,可以帮助我们更好地调优和故障排除,因此,今天我们就来聊聊JVM中9款常见的垃圾回收器。背景 因为Java虚拟机的类型比较多,如果没有特殊说明,本文特指HotSpot虚拟机,在分享回收器之前,我们首先对HotSpot虚拟机背景做个简单的介绍。HotSpotVM,最初是由“LongviewTechnologies”这家小公司设计,并且一开始也不是为Java语言研发。1997年,Sun公司收购了这家公司,从而也就得到了HotSpot虚拟机,在Sun公司的一番优化下,Hot