草庐IT

MONO_GC_PARAMS

全部标签

java - 如何在应用程序中持续保持 5GB 内存,而不会因 GC 而导致性能不佳?

我的应用程序是地理应用程序。由于要求响应时间短,我的每个实例都将所有点加载到内存并将它们存储在结构(四叉树)中。我们每分钟加载所有点(与数据库同步)并将它们放入几个四叉树中。我们现在有0.5GB积分。我正在努力准备下一个级别的5GB积分。虚拟机:-XX:NewSize=6g-Xms20g-Xmx20g-XX:+UseConcMarkSweepGC-verboseGC-XX:+PrintGCTimeStamps-XX:+PrintGCDateStamps-XX:+PrintGCDetails由于GC,实例的启动花费了很多时间,另外应用程序一直受到GC的影响。我想引用大堆的GC。我能想到几

java - 使用 G1 GC 和 trove 库的 JVM 崩溃

我们有以下问题:在我们的某些Linux机器上,使用trove库和G1GC的Java应用程序将很快崩溃并显示以下类型的消息:AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:SIGSEGV(0xb)atpc=0x00002aaaaaef81d1,pid=31063,tid=1141000512JREversion:6.0_29-b11JavaVM:JavaHotSpot(TM)64-BitServerVM(20.4-b02mixedmodelinux-amd64)Problematicframe:Jgnu.trove.impl.h

java - 在应用程序中记录 GC 信息

有没有办法将垃圾收集信息(例如-XX:+PrintGCDetails或-verbose:gc的输出)转发到Java中的记录器应用程序(在我的例子中是sl4j+logback)? 最佳答案 这些消息是由JVMnative进程生成的,而不是来自Java代码,因此您可以使用-Xloggc将输出重定向到文件(无旋转)Howtoredirectverbosegarbagecollectionoutputtoafile?直接通过管道传输标准输出(多个旋转选项)Logrotationofstdout?Rollinggarbagecollector

java - 频繁的主要 gc 但不是空闲堆?

运行几个小时后,我的http服务器开始频繁进行majorgc,但没有释放任何堆。多次majorgc之后,promotionfailed和concurrentmodefailure发生,然后heap被释放。我的gc日志如下:{HeapbeforeGCinvocations=7172(full720):parnewgenerationtotal737280K,used667492K[0x000000076b800000,0x000000079d800000,0x000000079d800000)edenspace655360K,100%used[0x000000076b800000,0x0

Unity使用的GC方式——贝姆GC(BOEHM GC)

Unity合作的Mono版本为Mono的早期版本,此时还没有使用SGenGC,后来Mono将默认GC方式改为SGenGC,Unity并没有继续购买,因此Unity使用的GC方式仍然是老的贝姆GC。贝姆GC官方网页:https://www.hboehm.info/gc/index.html1.阶段贝姆GC是一种基于标记清除法的GC方式。其整体过程可粗略分为四个阶段:准备阶段:所有对象的MarkBit重置。标记阶段:从Root出发进行扫描,将可达对象进行标记。清理阶段:扫描托管堆,将所有未标记的对象返回给对应的FreeList。Finalization阶段:所有注册了终结器的无效对象加入终结器队列

java - 为什么大多数 JVM gc 不使用引用计数?

为什么他们不需要它们,如果有人决定实现使用它们的虚拟机,他们可能会面临什么问题? 最佳答案 由于循环引用,引用计数容易发生内存泄漏。假设您有一个简单的“节点”对象,它引用了另一个节点,并假设您将其引用设置为自身。该对象的引用计数将始终为1,即使全局变量或堆栈变量中没有指向它的句柄,因此它永远不会被垃圾收集并泄漏内存。这是一个简单的例子,但任何循环引用都会有同样的问题。当然,可以检测到循环引用,但据推测这样做的开销会增加足够的复杂性,以至于其他GC方法更具吸引力。 关于java-为什么大多

5GC SBA架构

协议标准:DirectoryListing/ftp/Specs/archive/23_series/23.501/(3gpp.org)NF描述说明NSSFNetworkSliceSelectionFunction网络切片选择,根据UE的切片选择辅助信息、签约信息等确定UE允许接入的网络切片实例。NEFNetworkExposureFunction网络开放功能,开放各NF的能力,转换内外部信息。NRFNetworkRepositoryFunction该功能是一个提供注册和发现功能的新功能,可以使网络功能(NF)相互发现并通过API接口进行通信。PCFPolicyControlFunction策略

java - 线程作为 GC 根

我有一个关于GC根的问题。我读到GC根之一是“Livethread”。那是什么意思?我一直觉得每个线程都有自己的堆栈,堆栈的局部变量是线程的GC根,现在我很困惑。线程表示还有哪些不在帧堆栈或native堆栈上的其他类型的对象引用?另一个问题是新生代收集是使用GC根,还是仅用于主要算法?谢谢更新:好的,抱歉,为了简单起见:我读过这篇简短的文章:yourkit.com/docs/java/help/gc_roots.jsp并且有一个“线程”选项作为GC根,这到底意味着什么线程是一个GC根?ThreadGCroot引用了哪些对象,但其堆栈未引用哪些对象?为什么这两个类别不同?

java - 为什么将 GC 限制为 1 个线程会提高性能?

我编写了一些简单的Java代码来人为地使用大量RAM,我发现当我使用这些标志时获得相关时间:1029.59seconds....-Xmx8g-Xms256m696.44seconds.....-XX:ParallelGCThreads=1-Xmx8g-Xms256m247.27seconds.....-XX:ParallelGCThreads=1-XX:+UseConcMarkSweepGC-Xmx8g-Xms256m现在,我明白了为什么-XX:+UseConcMarkSweepGC会提高性能,但是为什么当我限制为单线程GC时我会得到加速?这是我写得不好的Java代码的产物,还是这也适

java - "java.lang.OutOfMemoryError: GC overhead limit exceeded"中 GC 时间过长的持续时间

偶尔,在每2天一次到每2周一次之间,我的应用程序在代码中看似随机的位置崩溃并显示:java.lang.OutOfMemoryError:超出GC开销限制。如果我用谷歌搜索这个错误,我会找到thisSOquestion这让我找到了thispieceofsundocumentation其中解释:TheparallelcollectorwillthrowanOutOfMemoryErroriftoomuchtimeisbeingspentingarbagecollection:ifmorethan98%ofthetotaltimeisspentingarbagecollectionandle