草庐IT

GC优化

全部标签

精益DevOps:优化流程,提升效能【文末送书-30】

文章目录精益DevOps:优化流程,提升效能精益DevOps的关键实践精益DevOps的优势精益DevOps【文末送书-30】精益DevOps:优化流程,提升效能随着信息技术的飞速发展,软件开发行业也在不断迭代和演进。在这个竞争激烈的时代,企业追求更快的交付、更高的质量和更强的创新力。在这一背景下,精益DevOps应运而生,成为实现敏捷开发和持续交付的一种强大方法。精益思想源自于丰田生产体系,注重消除浪费、提高价值流动和尊重人的价值。在DevOps中,精益思想的应用主要体现在以下几个方面:1持续改进精益DevOps强调持续改进的重要性。通过不断审视和优化整个软件开发交付过程,团队能够发现并消除

MySQL高级特性篇(3)-全文检索的实现与优化

MySQL数据库全文检索是指对数据库中的文本字段进行高效地搜索和匹配。在MySQL数据库中,可以使用全文检索来实现快速的文本搜索功能,并且可以通过一些优化手段提高全文检索的性能。一、MySQL全文检索的基本概念全文检索是一种将关键字搜索与自然语言处理技术结合起来的搜索方法。与传统的基于索引的搜索不同,全文检索可以对文本内容进行分词、权重计算和相关度排序,以提供更准确和相关的搜索结果。MySQL的全文检索功能可以用于InnoDB存储引擎的表,并且是通过创建全文索引来实现的。要使用MySQL的全文检索功能,首先需要确保使用的MySQL版本支持全文检索,并且在创建表时,将需要进行检索的文本字段设置为

java - 增加可用内核和 RAM 的数量是否会导致 JVM 执行更多的 GC?

我正在升级生产硬件,我们发现与旧套件相比,新套件上的新生代GC数量要多得多。相同的程序(相同的二进制文件)在两台机器上运行。一个明显的区别(我希望这不会对JVM产生影响)是我们升级了RHEL5->RHEL6。我们的JVM(Java64位Hotspot1.6,两者上的java-version相同)使用相同的命令行GC选项运行:-XX:+PrintGC-XX:+PrintGCDetails-XX:+PrintGCTimeStamps-XX:+UseParallelGC-XX:+UseCompressedOops还有:-Xmx1024M-Xms1024M-XX:NewSize=512M-XX

java - CQEngine 优化小型数据集

我有一个应用程序需要对数百万个较小的集合应用灵活的查询,每个集合的大小从10到10000个项目不等。CQEngine在提供查询这些集合的灵active方面做得很好,但比以前更严格的实现要慢得多,后者通过对集合中项目的某些属性进行预计算聚合来工作。该方法的问题在于它不够灵活,无法轻松处理新属性的添加。我的问题是要处理数百万个较小的集合,我可以做些什么来调整CQEngine以使其更快。我应该添加索引,还是只在集合超过一定大小时才添加索引。我目前在记录时间戳上使用Navigable,在类别或标签等其他属性上使用HashIndex。任何想法将不胜感激! 最佳答案

Java old gen 不断增长——需要帮助解释 Java GC 输出

我从事性能关键的服务器端Java应用程序。系统启动后,我预计不会创建长生命周期对象-只有短生命周期对象(最多10秒)。因此,我想调整JVM,以便在系统启动后老年代保持不变。我想我已经成功了,但我不明白为什么(见下文)。这是我们的设置:-Xmx3000m-Xms3000m-详细:gc-XX:+PrintGCTimeStamps-XX:+PrintGCDetails-XX:+UseConcMarkSweepGC-XX:SurvivorRatio=5-XX:TargetSurvivorRatio=90-XX:MaxTenuringThreshold=31-XX:+PrintTenuringD

Microsoft Visual studio 2022卡顿优化方案,详细操作步骤?

MicrosoftVisualStudio2022卡顿的优化方案包括以下步骤: 优化编译选项:打开VisualStudio2022,进入“工具”菜单,选择“选项”。在弹出的对话框中,选择“项目和解决方案”,然后选择“生成和运行”。在“配置属性”页面,选择“常规”,启用“使用多核心编译”和“使用多处理器编译”选项。另外,还可以根据需要启用其他一些优化编译选项,例如“启用并行项目加载”和“启用预编译头”。使用第三方工具:例如,可以使用IncrediBuild来加速编译。下载并安装IncrediBuild,打开VisualStudio2022,进入“工具”菜单,选择“选项”。在弹出的对话框中,选择“

java - .net 的 GC.KeepAlive 的 Java 等价物是什么?

.NET有一个名为GC.KeepAlive(Object)的函数.它的唯一目的是确保引用对象的生命周期持续到代码流到达调用为止。这通常是不必要的,除非与native代码进行互操作。我有一个情况,我有一个通过JNI访问的C++对象图,其中某些根对象需要保持Activity状态以保持子对象Activity。根对象和子对象在JVM领域都有镜像。但是,如果在C++端收集并释放根对象(通过SWIG生成的终结器),则子对象将变得无效,因为它们的C++支持对象将被释放。这可以通过确保作为对象图根的局部变量的生命周期超过子对象的最后一次使用来解决。所以我需要一个不对对象做任何事情的惯用函数,但不会被优

java - 拍摄优化 JVM 运行时的快照

我知道JVM可以在运行时进行一些非常重要的优化,尤其是在-server模式下。当然,JVM稳定下来并达到最佳性能需要一点时间。有什么方法可以拍摄这些优化的快照,以便在您下次运行您的应用时立即应用它们?“嘿JVM!优化我的代码做得很好。你能帮我写下来以备后用吗?” 最佳答案 Sun的VM基本上还没有,但他们已经考虑好了。在此处查看各种帖子/评论:http://blogs.oracle.com/fatcatair/category/Java(抱歉:我找不到关于在重新启动时保留统计信息以立即对已知热启动方法进行C1编译的正确方法。)但我不

Java CMS 被忽略,取而代之的是 Full GC

我正在运行一个使用CMS作为终身收集器的Java服务器。在负载测试下运行,我大约每1秒看到一次年轻Collection,大约每5米看到一次永久(并发)。这很好。当我以大约1/2容量的实际流量运行时,我大约每4秒收集一次年轻集合,大约每7米收集一次终身收集(!并行,停止世界!)。为什么JVM决定进行完全停止世界收集而不是使用CMS收集器?从gc.log中,您可以看到“FullGC”正在运行,并且需要3秒才能完成。这里没有并发模式故障。没有明确请求集合。1350.596:[GC1350.596:[ParNewDesiredsurvivorsize119275520bytes,newthre

java - 是否可以从 gc 的角度将 java 对象标记为不可回收以节省 gc-sweep 时间?

是否可以从gc角度将java对象标记为不可回收以节省gc-sweep时间?类似于http://wwwasd.web.cern.ch/wwwasd/lhc++/Objectivity/V5.2/Java/guide/jgdStorage.fm.html的内容特别是non-garbage-collectible容器那里(non-garbage-collectable?)。问题是我有很多普通的临时对象,但我有更大(几千兆)的对象存储用于缓存目的。JavaGC无缘无故应该遍历所有这些缓存千兆字节以试图找到任何要收集的东西,因为它们包含有自己的超时的缓存数据。这样我就可以以自定义方式将我的数据划