首页 文章
  • 4 votes
     answers
     views

    Rust的Arc和Rc类型与垃圾收集有何不同?

    The Rust Programming Language, first edition说Rust没有垃圾收集器: 它在没有垃圾收集器的情况下维持这些目标 但是,在discussing choosing your guarantees中它还说: Rc <T>是引用计数指针 . 换句话说,这让我们有多个“拥有”指向同一数据的指针,当所有指针都超出范围时,数据将被删除(析构函数将被运...
  • 201 votes
     answers
     views

    新的自动引用计数机制如何工作?

    有人可以简单地向我解释ARC是如何工作的吗?我知道它与垃圾收集不同,但我只是想知道它是如何工作的 . 此外,如果ARC在没有阻碍性能的情况下完成GC的工作,那么为什么Java使用GC?为什么不使用ARC呢?
  • 645 votes
     answers
     views

    错误java.lang.OutOfMemoryError:超出了GC开销限制

    我在执行JUnit测试时收到此错误消息: java.lang.OutOfMemoryError: GC overhead limit exceeded 我知道 OutOfMemoryError 是什么,但GC开销限制意味着什么?我怎么解决这个问题?
  • 0 votes
     answers
     views

    如何调整apache spark 1.5.0的内存设置?

    如何在spark 1.5.0上运行的应用程序调整堆内和堆外内存?通过使用“-XX PrintGCDetails -XX:PrintGCTimeStamps”,我注意到在从文件$ SPARK_HOME / work / application_id / stdout中检索到的GC报告中,JVM大约每隔1分钟就会保留GC . 虽然通过--executor-memory 50g选项和各种--conf s...
  • 3 votes
     answers
     views

    为什么C不能有可选的透明垃圾收集器

    有一个相关的问题,但这个有点不同,我对相关问题的任何答案都不满意:) 我将通过声明不可能为C提供可选的透明垃圾收集器并希望有人会证明我错了来问这个问题 . 是的,Stroustrup尝试了这一点并且一再失败,不是因为技术问题,而是因为一致性问题 . 性能不是问题 . C永远不会有这样一个收集器的原因是,在没有收集器的情况下运行的程序必须手动实现所有必需的内存管理 . 添加收集器可能会带来一些性能优...
  • 7 votes
     answers
     views

    堆中的并发标记扫描生成是什么?

    在以下输出中,什么是并发标记扫描生成? par new generation total 24512K, used 12082K [0x00007fb3b9420000, 0x00007fb3bac20000, 0x00007fb3bac20000) eden space 24448K, 49% used [0x00007fb3b9420000, 0x00007fb3b9fec808, 0...
  • 21 votes
     answers
     views

    是什么触发了Java中的完整垃圾回收?

    我想知道在Java中触发Full Garbage Collection的确切情况是什么 . 显而易见的是: 用完了老一代 用完了烫发 调用System.gc() 那些导致完整gc的其他病例呢?尤其: 在Survivor Space中没有足够的可用空间来复制Eden中的对象 . 次要集合无法应对新对象的分配率(不知道如何) . 我正在运行Sun Java 1.6并使用Co...
  • 0 votes
     answers
     views

    了解垃圾收集数据

    所有, 我在运行程序时使用以下VM开关 . 该程序具有已知的内存泄漏 . 最初堆已满,我理解OutOfMemoryError的原因 . 但是后来(124.283),一个完整的GC回收了一些空间 . 那么为什么我仍然得到OutOfMemoryError? 提前致谢 VM参数 -XX:PrintGCTimeStamps -XX:PrintGCDetails -Xms32m -Xmx32m 这是GC数据...
  • 1 votes
     answers
     views

    JVM App暂停了几个小时|没有观察到OOM错误,但所有迹象表明在GC中无法正常工作

    我正面临一个问题,我的Java应用程序只是PAUSES&不做任何活动 . VM args:-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = / tmp / javadumps -Xms2048m -Xmx4600m -XX:NewRatio = 3 -XX:UseConcMarkSweepGC -XX:UseParNewGC -XX:PrintGC...
  • 0 votes
     answers
     views

    在命令行上分析大堆转储?

    我有一个遗留应用程序,其GC日志反复显示频繁的分配失败 . (GC模式是并发标记扫描)堆转储很大(~7.5G) . 有没有办法从命令行分析堆转储文件?(要做它在远程ssh会话中没有下载大堆转储到本地机器,X11端口转发没有启用) 根据我的理解,下面的日志表明有很多新对象正在被创建并被垃圾收集 . 我有堆转储文件 . 我试过Jhat,它花了太长时间没有响应和MAT,即使使用Xmx 6g也没有内存 ....
  • 3 votes
     answers
     views

    GcTimeLimit可能没有错误的原因?

    我有一个Java中的Web服务,包含在Jetty中 . 我正在使用Sun的Java 6和默认的ParallelGC,并且我打开了以下命令行选项:“ - verbose:gc -XX:PrintGCTimeStamps --XX:PrintGCDetails” . 当我的进程内存不足时,我会看到这样的记录,背靠背: 66872.846: [Full GC [PSYoungGen: 932534K-...
  • 23 votes
     answers
     views

    java垃圾收集日志条目“Full GC(System)”是否意味着一些名为System.gc()的类?

    垃圾收集日志中的“Full GC(System)”条目是什么意思?那个类叫System.gc()? 我的垃圾收集日志有两个不同的“完整gc”条目类型?一个用'System'这个词,另一个没有 . 有什么不同? (更新:我搜索了这个词并没有找到明确的答案,只有几个问题 . 所以我想我会发布它) . System: 164638.058:[全GC(系统)[PSYoungGen:22789K->...
  • 2 votes
     answers
     views

    Java - Full GC(垃圾收集器)在短时间内发生很多事情,导致性能下降

    我在prod环境中看到一些异常行为导致我们在运行Tomcat的服务器上出现高线程数 . 堆大小10,092,544K在新一代和产权生成之间分配为2,752,512K 7,340,032K = 10,092,544K . 我很困惑为什么GC在堆上有足够的内存可用时多次运行(新旧两种)(Full GC [PSYoungGen:0K-> 0K(2752512K)] [ParOldGen:27485...
  • 0 votes
     answers
     views

    全GC经常发生

    详细日志显示Full GC发生时间为每7秒 - ], 7.3933980 secs] [Times: user=89.17 sys=1.16, real=7.39 secs] 79959.910: [Full GC [PSYoungGen: 390144K->194442K(451584K)] [ParOldGen: 1572654K->1572852K(1572864K)] 1962...
  • 0 votes
     answers
     views

    完整GC期间'PSPermGen'和'real'时间长'user'和'sys'

    我在 生产环境 中遇到了一个奇怪的问题,经过5年多的运作后才发生一次 . 我们发现PSPermGen和'实际'持续时间远远高于用户系统的时间 . 2016年2月4日,PSPermGen在之前的运行时间为0.2-0.3秒,并且没有释放内存,耗时38.96秒 . 当用户系统为0.3-0.4秒时,实时花费40秒,这与之前的运行相比异常高 . 没有看到完整的GC频繁发生,我也没有观察到任何GC相关的错误...
  • 23 votes
     answers
     views

    java垃圾收集日志条目“Full GC(System)”是否意味着一些名为System.gc()的类?

    垃圾收集日志中的“Full GC(System)”条目是什么意思?那个类叫System.gc()? 我的垃圾收集日志有两个不同的“完整gc”条目类型?一个用'System'这个词,另一个没有 . 有什么不同? (更新:我搜索了这个词并没有找到明确的答案,只有几个问题 . 所以我想我会发布它) . System: 164638.058:[全GC(系统)[PSYoungGen:22789K->...
  • 0 votes
     answers
     views

    堆使用量的一半,但很多ehcache未命中

    我们在java6 / solaris上使用hibernate3 / ehcache进行应用,并观察奇怪的堆使用模式(xmx = xms = 4G) - 从1.5G到2.5G的峰值,每5秒约为一次,如:/ | / | / | / | / |但同时我们在ehcache中观察缓存未命中几天(因此缓存很热)(通过从org.hibernate.Interceptor#onPrepareStatement钩子...
  • 0 votes
     answers
     views

    GC日志让我感到困惑

    在提问All thread are blocked,like STW,and no responding之后,我添加了一些JAVA_OPTS . 这是我的新选择 . -server -Xms32g -Xmx32g \ -XX:NewSize=10g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFractio...
  • 4 votes
     answers
     views

    当Plaquet挂起并失败时,EMR上的Spark 1.6写入S3

    我正在创建一个uber jar spark应用程序,我将其提交给EMR 4.3集群,我正在配置4个r3.xlarge实例,一个是主服务器,另外三个是核心服务器 . 我从控制台预安装了hadoop 2.7.1,ganglia 3.7.2 spark 1.6和hive 1.0.0 . 我正在运行以下命令: spark-submit \ --deploy-mode cluster \ --executo...
  • 0 votes
     answers
     views

    Java新String和堆行为中的新StringBuilder

    字符串池是否驻留在堆上?如果是,String字符串是否有资格进行垃圾回收? 使用 new String("abc") 时,我们知道它在堆上创建了一个对象,并将String文字放在String池中 . 所以我的第二个问题是: new StringBuilder("abc") 的行为与 new String("abc") 相同吗?如果是...
  • 276 votes
     answers
     views

    Java堆术语:年轻,古老和永久的世代?

    我试图理解Java堆术语中 young , old 和 permanent generations 的概念,更具体地说是三代之间的相互作用 . 我的问题是: 年轻一代是什么? 老一代是什么? 什么是永久世代? 三代人如何相互作用/相互联系?
  • 1 votes
     answers
     views

    JVM没有发布虚拟memroy

    我的Web应用程序正在抛出OOM错误 . 它被给予25GB内存 . 应用程序已加载测试,我们看到内存正在增加 . 但我希望JVM在完全gc之后释放内存 . 为什么即使在使用应用程序之后JVM也没有释放虚拟内存 . Here are the JVM settings: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/lo...
  • 10 votes
     answers
     views

    为什么JVM比指定的-Xms消耗更少的内存?

    我的问题是 Headers ,我通过搜索获得了一些知识: linux共享内存How to measure actual memory usage of an application or process? JVM将保留在Xms中设置的内存量What does the -Xms JVM mean in reference to heap memory? 但还是不知道为什么,有些可以提供一...
  • 43 votes
     answers
     views

    内存分配/解除分配瓶颈?

    在典型的真实世界的程序中,内存分配/释放有多大的瓶颈?任何类型的程序通常都很重要的答案是受欢迎的 . malloc / free / garbage收集的正确实现是否足够快,以至于它只是少数极端情况下的瓶颈,或者大多数性能关键型软件都会从尝试保持内存分配量下降或拥有更快的malloc / free /中获益匪浅垃圾收集实施? 注意:我是 not 在这里谈论实时的东西 . 对性能至关重要,我的意思...
  • 0 votes
     answers
     views

    Kotlin为游戏开发

    背景: 我一直在寻找一种语言来取代Java用于游戏开发 . Kotlin看起来很有前途,有很好的IDE支持和Java互操作 . 但是游戏的FPS杀手之一(特别是在Android上)就是GC使用 . 因此,一些库(如libgdx)正在使用对象池,自定义集合和其他技巧来避免频繁的GC运行 . 对于Java,可以以明确的方式完成 . 其他一些JVM语言本身具有功能支持,使用大量GC本质,因此很难避免 ...
  • 1 votes
     answers
     views

    应用程序在JRocket垃圾收集器中的暂停时间

    我是Garbage Collector的新手 我需要使用gc日志文件计算不同JVM的应用程序的暂停时间,我使用 -XX:+PrintGCApplicationStoppedTime 为SUN完成此操作,这使我在日志文件中输出 Total time for which application threads were stopped: 0.0012997 seconds 但是对于剩下的JVM 1.J...
  • 10 votes
     answers
     views

    为什么两个次要GC之间存在多个“应用程序线程停止的总时间”日志

    我正在使用以下设置运行java应用程序: -Xms1G -Xmx2G -Xdebug -Xloggc:/usr/local/resin/log/gc.log -XX:PrintGCDetails -XX:PermSize = 150M -XX:PrintGCTimeStamps -XX:PrintTenuringDistribution -XX:PrintGCApplicationStopped...
  • 7 votes
     answers
     views

    用PrintGCApplicationStoppedTime报道的“停止世界”时间真的准确吗?

    我试图通过使用-XX:PrintGCApplicationStoppedTime JVM选项来估计垃圾收集“停止世界”暂停时java应用程序中的线程被阻止了多长时间 . 我解析gc.log文件并将报告的停止时间添加到GC时间戳(-XX:PrintGCDateStamps)以获取GC事件的“开始和停止”时间戳 . 应用程序线程测量发送HTTP请求并获取响应所需的时间,并在发送请求时记录时间戳以及请求...
  • 0 votes
     answers
     views

    java garbage collection - 暂停应用程序线程?

    应用程序线程停止的总时间:xxxxxxxxx应用程序时间:xxxxxxxxxxxxxxx 这两个字段意味着什么?我的应用程序暂停了gc吗?申请时间字段是什么意思?
  • 1 votes
     answers
     views

    停止时服务偶尔挂起:悬挂线程

    我在C#中编写了一个针对.NET 4.0的Windows服务,当我尝试停止服务时,奇怪的情况下它将完全挂起 . 我注意到从转储文件中看到我的一些线程被挂起了,虽然我没有在我的代码中暂停它们 . 环境是Windows Server 2008R2 64位,虽然我在Windows 7 64bit上观察到相同的挂起 . .NET 4.0是安装的最新版本 . 有很多代码,所以我只是发布一些有希望的相关片段...

热门问题