草庐IT

C++流到内存

全部标签

java - Gradle Proguard 优化时出现大量内存错误

我为我的Java应用程序运行./gradlewproguard--debug来检查为什么它没有在数小时内完成,这就是我所看到的:17:14:11.431[INFO][system.out]Optimizing...17:14:13.537[DEBUG][org.gradle.process.internal.health.memory.MemoryManager]EmittingOSmemorystatusevent{Total:8589934592,Free:2029916160}17:14:13.538[DEBUG][org.gradle.launcher.daemon.serve

java - 在 JTextPane 中插入一些字符会导致性能问题和内存泄漏

我的聊天客户端有一个JTextPane,其中插入了文本,每秒最多可以插入几行。它通常可以正常工作,即使是更长的时间(例如一个小时),但有时它会变得非常慢,使用大量CPU和内存,有时高达1GB并且几乎完全卡住。我添加了“-Xrunhprof:heap=sites”参数来找出正在使用内存的内容以及我可以收集的内容,它与文本渲染有关,尽管我不太了解这些东西,所以它更多一个有根据的猜测。这是结果的一部分,在内存使用率异常高时拍摄。我在每个条目下都包含了适当的跟踪。其他堆转储看起来略有不同,但它总是指向相同或相似的类(名称中带有Glyph)。不确定如何正确解释这一点,以及它是否真的有助于解决这个

java - 以低内存消耗在 Java 中调整图像大小

ImageMagick的“转换”命令行工具允许您在执行操作时指定内存使用限制。我想找到一个提供相同选项的Java图像大小调整库。我的应用程序有时会得到非常大的JPEG,需要将它们缩减到合理的大小。例如,一个11600x5152的图像将消耗大约227MB的内存,只是解压缩它;调整大小的过程最终会使用比这更多的东西。在Java中,有没有一种方法可以将非常大的图像调整到合理的大小,而无需在内存中解压缩整个图像? 最佳答案 我认为这个主题已经在某种程度上进行了讨论:Whatisthebestjavaimageprocessinglibrar

Java - x32 和 x64 之间的奇数内存消耗

我一直在分析我的应用程序的x64版本,因为内存使用率高得离谱,所有这些似乎都来自JavaFXMediaPlayer,我正确地释放了监听器和事件处理程序。这是一个鲜明的对比。开始时的x32版本现在开始时是x64版本x32版本保持在256mb以下,而x64将超过演出;这是两人都在播放他们的播放列表的时候。所有的代码都是一样的。JDK:jdk1.8.0_20JRE:jre1.8.0_20两者的VM参数-XX:MinHeapFreeRatio=40-XX:MaxHeapFreeRatio=70-Xms3670k-Xmx256m-Dsun.java2d.noddraw=true-XX:+UseP

java - 是否可以按池检查堆内存使用情况?

我一直致力于优化一个有很多内存泄漏问题的程序。泄漏现在已经消失,但主要GC的偶尔运行仍然对PSoldgen产生了很大的影响。我知道我可以通过运行时检查基本的整体内存信息,但是是否可以从程序中检查PSeden、PSsurvivor和PSold中的使用情况? 最佳答案 这个article可以帮助你您可以编写自定义代码来分析内存,输出将采用以下形式collectiontime:82037collectioncount:116PSSurvivorSpace:init=1703936(1664K)used=65536(64K)committe

java - 尽管 RAM 显示 6 GB 可用空间,但 Java 运行时环境的内存不足无法继续

在运行java应用程序时,我得到以下内存转储。安装java8后(之前java7应用程序可以运行)我开始收到以下错误。我使用的是16GB内存,当我在任务管理器中检查时(在应用程序启动时)大约有6GB内存可用。有人可以帮忙解决问题吗?##ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.#Nativememoryallocation(malloc)failedtoallocate472736bytesforChunk::new#Possiblereasons:#ThesystemisoutofphysicalRA

java - 在 log4j 的内存 'list appender' 中

log4j是否有一个仅存储日志记录事件列表的附加程序(用于单元测试,以验证没有写入错误日志)? 最佳答案 有一个MemoryAppender,但它不是标准log4j库的一部分。您可以轻松编写自己的代码,但如果您仅将它们用于单元测试,我可能会模拟Logger并断言没有调用它。覆盖目标类中的getLogger()方法或直接在类型上设置模拟Logger。使用Jmock(内存中的例子,如有错误请见谅):publicvoidtestDoFoo(){Mockerymockery=newMockery();LoggermockLogger=moc

java - 是否应该将 Disruptor (LMAX) 与内存和 CQRS 中的大模型一起使用?

出于性能原因,我们的系统结构化模型(大约30个具有多种关系的不同实体)完全保存在内存(大约10Gb)中。在这个模型上我们必须做3种操作:更新一个或几个实体查询特定数据(这通常需要读取数千个实体)获取统计数据(使用了多少内存,有多少种查询等)目前该体系结构是一个相当标准的体系结构,具有使用共享模型的servlet线程池。在模型内部有很多并发集合,但仍然有很多等待,因为一些实体“更热”并且大多数线程想要读/写它们。另请注意,通常查询比写入消耗更多的CPU和时间。我正在研究切换到Disruptor架构的可能性,将模型保持在单个线程中,将所有可能的东西(有效性检查、审计等)从模型中转移到单独的

java - volatile 关键字和内存一致性错误

在oracleJava文档中locatedhere,下面说:Atomicactionscannotbeinterleaved,sotheycanbeusedwithoutfearofthreadinterference.However,thisdoesnoteliminateallneedtosynchronizeatomicactions,becausememoryconsistencyerrorsarestillpossible.Usingvolatilevariablesreducestheriskofmemoryconsistencyerrors,becauseanywrite

java - VisualVM:理想的堆内存使用图

我正在使用VisualVM监控我的Java应用程序(用JDK1.7编写)。下图显示了此应用程序运行期间的堆内存使用情况。查看此图,您会发现其中有很多尖峰。这些尖峰表明应用程序创建了对象。一旦应用程序处理完它们,它就会使用gc(在这种情况下隐式调用)销毁它们。此外,这是应用程序仍在运行时内存分析器的屏幕截图对我来说,图形的上下性质表明java对象的有效使用。这个推断对吗?堆使用图的理想性质是什么?是否有任何其他方法可以改善我的应用程序的堆内存使用情况? 最佳答案 Tometheupanddownnatureofthegraphindi