GC日志监听器

这是一款基于LGame-Simple-0.2.5的小应用,能够针对用户指定的GC日志文件(仅限Sun JRE生成的)进行简单分析。PS:此示例中吾辈对图表的动态绘制也进行了初步尝试(比较痛苦到底是该封装jfreechart之类的图形库好,还是该自己写套小型图形库用的方便……不过那是N往后的计划了……)。

从技术角度来讲,此例并非一个完整的GC日志分析工具,而仅仅是一个用以显示GC日志数据的监听器。它的实现机理堪称简单至极,不过是利用-Xloggc输出JVM的GC记录,再以正则表达式解析到图表中显示罢了(当然,HPjtnue也是这样玩的)。

因此,隐藏在这个简单示例背后,如何更为高效,准确,有价值的分析出必要数据的方式以及方法,才是我们应该思考的问题(只对Java2D感兴趣的就研制表格绘制好了……)。

下载地址(将批处理中的gc日志地址改为需要监听的日志地址即可使用) http://loon-simple.googlecode.com/files/GCLog.7z

00

执行部分代码如下(详细代码在jar中):

package org.loon.test; import java.awt.Graphics2D; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import org.loon.framework.game.simple.GameScene; import org.loon.framework.game.simple.core.LSystem; import org.loon.framework.game.simple.core.graphics.Deploy; import org.loon.framework.game.simple.core.graphics.Screen; /** * * Copyright 2008 - 2009 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. * * @project loonframework * @author chenpeng * @email:ceponline@yahoo.com.cn * @version 0.1 */ public class Main extends Screen { private ChartSprite chart; private GC gc; public Main(String fileName) { this.gc = new GCLog(fileName); this.chart = new ChartSprite(getWidth(), getHeight()); this.chart.showLegendOnRight(); this.chart.setXDescription("Run Time"); this.chart.setYDescription("bytes"); this.chart.setShowSmallSquares(6); this.chart.setTitle("GC Line2D Chart"); this.chart.setMaxValue(20000); this.chart.setValsDescription("0,0,0,0,0,0"); this.chart.addComp("0,0,0,0,0,0", "Used"); this.chart.addComp("0,0,0,0,0,0", "Free"); this.chart.addComp("0,0,0,0,0,0", "Total"); this.add(chart); Thread thread = new Thread() { public void run() { while (true) { GCData m = gc.read(); if (m != null) { chart.updateComp(0, m.getUsedMemory()); chart.updateComp(1, m.getFreeMemory()); chart.updateComp(2, m.getTotalMemory()); chart.updateDescription(m.getTime()); } try { Thread.sleep(LSystem.SECOND); } catch (InterruptedException e) { } } } }; thread.start(); } public void draw(Graphics2D g) { } public void leftClick(MouseEvent e) { } public void middleClick(MouseEvent e) { } public void rightClick(MouseEvent e) { } public void onKey(KeyEvent e) { } public void onKeyUp(KeyEvent e) { } public static void main(final String[] args) { if (args.length == 0) { return; } GameScene frame = new GameScene("GC日志监听器", 480, 360); Deploy deploy = frame.getDeploy(); deploy.setScreen(new Main(args[0])); deploy.setShowFPS(false); deploy.setLogo(false); deploy.setFPS(30); deploy.mainLoop(); frame.showFrame(); } }

下载地址(将批处理中的gc日志地址改为需要监听的日志地址即可使用) http://loon-simple.googlecode.com/files/GCLog.7z

<think>好的,用户想了解JMeter监听器的使用和配置方法。我需要根据提供的引用内容整理出清晰的步骤和注意事项。首先,要确定监听器的基本概念和作用,比如它们用来收集和展示测试结果。然后按照添加监听器的路径说明,引用4提到在测试计划中选择线程组或请求,右键添加。接着配置部分,可能需要引用5中的配置选项,比如保存响应数据、时间戳等。另外,用户可能关心不同类型的监听器,引用1提到有16个内置的,还有插件如jp@gc,引用3提到了安装插件的方法,需要说明如何安装和启用。可能还需要提到实际应用中的配置建议,比如最小配置和最佳实践。最后,常见监听器的具体用途,比如聚合报告、查看结果树,这些引用4和引用1都有涉及。还要注意性能影响,建议在正式压测时禁用部分监听器,引用5提到保存数据的选择会影响资源消耗。可能需要生成相关问题,比如优化监听器配置或集成外部监控工具,引用2中的InfluxDB可以作为例子。需要确保回答结构清晰,分步骤说明,并引用正确的来源。</think>### JMeter监听器使用与配置方法 #### 一、监听器的基本功能 JMeter监听器用于收集和展示性能测试结果,支持实时监控和结果分析。通过监听器可以查看响应时间、吞吐量、错误率等关键指标,并能将数据保存为多种格式(如CSV、XML)[^4]。 #### 二、添加监听器的步骤 1. **路径**:在测试计划中,右键点击线程组或具体请求 -> 选择「添加」-> 「监听器」-> 选择具体类型[^4]。 2. **常用监听器类型**: - **聚合报告**:汇总所有请求的统计信息(平均响应时间、吞吐量等)。 - **查看结果树**:显示每个请求的详细响应内容和请求头[^1]。 - **响应时间图**:以图表形式展示响应时间变化趋势。 #### 三、配置监听器的核心参数 在监听器的配置界面中,需关注以下关键选项(以「查看结果树」为例): 1. **保存结果到文件**: - 勾选「Save Response Data」保存响应内容[^5]。 - 勾选「Save Time Stamp」记录请求时间戳[^5]。 2. **过滤显示结果**: - 使用「Filter」字段按关键字过滤请求。 3. **性能优化配置**: - 避免在正式压测时启用「查看结果树」(会大幅增加内存占用)。 - 最小化保存字段(如仅保留响应代码和耗时)以降低资源消耗[^5]。 #### 四、进阶配置技巧 1. **插件扩展**: - 安装`JMeterPlugins-Standard`插件,添加更丰富的监控图表(如TPS、服务器资源监控)[^3]。 - 配置`PerfMon`监听器监控服务器CPU/内存使用率(需配合ServerAgent使用)[^3]。 2. **集成外部数据库**: - 通过`InfluxDB`监听器将测试结果实时写入时序数据库,结合Grafana实现可视化监控[^2]。 #### 五、使用注意事项 1. **资源消耗**:监听器会占用较多内存,建议在调试阶段启用,正式压测时仅保留必要监听器[^1]。 2. **结果保存策略**: - 使用CSV格式替代XML以减少文件大小[^5]。 - 启用「仅保存错误日志」以过滤成功请求[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值