最近我尝试在我的Java处理器中使用来自jdk1.7.0-17的G1GC,该处理器正在处理从MQ接收到的大量相似消息(大约15-20个请求/秒)。每条消息都在单独的线程中处理(稳定状态下有约100个线程),由Java有限线程池提供服务。令人惊讶的是,当GC开始进行完整的gc循环时,它开始使用大量的处理时间(高达100%的CPU甚至更多)。我多次重构代码,目标是优化它并使其更加轻量级。但是没有任何显着结果-行为是相同的。我使用带有Debian操作系统(2.6.32-5内核)的4核64位机器。有人能帮助我理解和解决这种情况吗?下面是上述问题的一些插图。