网站大量收购独家精品文档,联系QQ:2885784924

基于采样的Web App性能监测工具.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于采样的Web App性能监测工具

基于采样的Web App性能监测工具 开发与测试模式的变迁 完整设计-开发-测试-性能优化 不利于在早期发现性能问题 可能发现性能问题时已无法补救 测试优先-开发-满足测试 测试优先保证应用程序开发的方向 何处进行性能度量? Junit perf J2EE Application server based profiler JVM provided profiler (Jrockit 5) 在开发时即随时进行度量是最易于控制性能的方式 现存性能监测工具 JVM level JRockit 5 management console JRockit 5 Analyzer 并非所有jvm都支持 Black box benchmark tool Apache ab/JMeter/Load Runner/…. 需要专门进行测试脚本编写 Property Profiler for application/AS JProfiler JProbe Yourkit 代价较高,粒度难以控制 Special logtool/profiler P6Spy 无通用性,不可扩展 现存性能监测工具的缺点 为通用任务设计,学习成本高 商业产品代价高昂 对特别任务的监视难以自行设定监测对象,难以重复,不直观 Xwork/Struts action execute Report generate Excel generate SQL statement execute… 是否可以自行编写监测程序? 粗粒度,按照自己的需求把握 可扩展 开销足够小,可用于生产环境中 基于免费/开源软件包 与其他软件不产生冲突 RedSaga TicTac Console Web app环境运行的性能监测工具 直观的Top 10 统计易于进行瓶颈分析 开放源代码,非常易于扩展 基于ApsectWerkz2.0动态AOP pointcut,可随时停止/启动 停止时无开销 启动后开销很小 当前处于alpha阶段 你也可以自己编写profiler 实现原理: use aop pointcut to profiler AOP Aspect: 采样器 Dynamic pointcut:动态部署 AOP Advise: 触发关联 Statistics:统计数据 Dynamic AOP in aspectwerkz Aspectwerkz: runtime wave aop BEA赞助开发,与Jrockit集成良好 Hotswap: enable aspectwerkz to hot deploy aspects Sun Jdk 1.3/1.4 need a native JVMPI agent Sun jdk 5.0 support via JVMTI Jrockit 1.4/1.5 support via –Xmanagement option IBM JDK does not support hotswap now Team up with AspectJ5 Aspect public Object trace(JoinPoint joinPoint) throws Throwable { traceSuccess = true; Rtti rtti = joinPoint.getRtti(); (= + rtti.getName() + / + rtti.declaringType= + rtti.getDeclaringType() + / + rtti.Modifiers= + rtti.getModifiers() + / + rtti.Target= + rtti.getTarget() + / + rtti.This= + rtti.getThis() + / ); return joinPceed(); } public Object traceWelcome(JoinPoint joinPoint, String s) throws Throwable { greeting = s; return joinPceed(); } Pointcut pointcut name=abc expression=execution(* org.hsqldb.jdbc.*(..))/ Dynamic pointcut String pointcutName = pointcut+ GUIDHelper.getSessi

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档