日期:2014-05-19  浏览次数:20706 次

关于一个程序监控功能的实现想来寻找一些思路或灵感
想做一个统一的程序监控功能,它可以实现记录程序运行过程中每一步,精确到每一个对象、函数、甚至每一个参数每一个返回值的内容。最后在程序完成后我们可以把这些记录做为一个报表导出。

它的意义是可以帮助开发人员测试并监视程序执行过程(主要是类以及函数相互调用方面的),并监控整个执行过程中数据传递的过程(参数和返回值的捕获)。发现逻辑错误或者影响效率的地方,也可以帮助在人员调整时其他开发人员去跟踪了解接手代码的逻辑过程。

我觉得它的实现效果是类似AOP的方式自动运作,他可以全自动的监视所有代码,我们处于性能上考虑可以选择性的打开或关闭它。应用开发人员最好可以根本不要觉察到它的存在,尽可能少的去实现一些必要的规范(比如注解、方法命名、或者用于日志记录的代码)。


关于这个大家有什么思路或者意见或者已知的可以参考的技术,拿出来分享一下哈~

------解决方案--------------------
有现成的工具,叫做perf4j,刚好满足你要求;我们之前也用过。

可以用很多方式进行性能日志收集,包括借助Spring提供的AOP能力。
还可以对所收集的数据进行图形展示。

介绍:
http://www.infoq.com/cn/articles/perf4j

网站:
http://perf4j.codehaus.org/devguide.html