关于.net性能监控,欢迎讨论

wuhuzhangwei 杭州魔品科技 开发组长/高级工程师/技术专家  2013-06-18 01:45:14
本处指的性能监控,指的是业务点无须写任何处理,全部在框架处实现,比如框架调用了一个虚方法,由业务点实现,重现时里面可能调用了好几个方法,我们要做的是,得到所有方法的调用堆栈以及各自的时间。
这个刚好跟StackTrace是反过来的,StackTrace是在方法调用栈的最内层,而我的需求是在最外层,请问有无好的办法,或者有成熟的开源框架,请指点一二!
...全文
324 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
NENGAH 2013-07-11
using Mono.Cecil;
回复
NENGAH 2013-07-11
静态注入 http://www.cnblogs.com/whitewolf/archive/2011/07/26/2117661.html //AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly(@"D:\yaleshi\yaleshi\winform\2013年6月28日1\2013年6月28日1\bin\Debug\2013年6月28日1.exe"); //var types = assembly.Modules[0].Types; //MethodDefinition methodDefault; //foreach (var type in types) //{ // methodDefault = type.Methods.FirstOrDefault(m => m.Name == "Test"); // var method = type.Methods.FirstOrDefault(m => m.Name == "Main"); // if (method != null) // { // var instructions = method.Body.Instructions; // ILProcessor il = method.Body.GetILProcessor(); // Instruction call = il.Create(OpCodes.Call, methodDefault); // // il.InsertBefore(method.Body.Instructions[0], ldstr); // il.InsertAfter(method.Body.Instructions[0], call); // } //} //assembly.Write(@"D:\yaleshi\yaleshi\winform\2013年6月28日1\2013年6月28日1\bin\Debug\2013年6月28日1.exe");
回复
emailtome 2013-06-20
mono.cecil
回复
wuhuzhangwei 2013-06-18
其实,就是想实现类似dottrace的功能,但是是用aop形式注入到框架中的的,这样我就可以监控系统的性能,知道哪些方法慢了
回复
发帖
.NET技术前瞻
创建于2007-09-28

1.3w+

社区成员

.NET技术 .NET技术前瞻
申请成为版主
帖子事件
创建了帖子
2013-06-18 01:45
社区公告
暂无公告