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

wuhuzhangwei 2013-06-18 01:45:14
本处指的性能监控,指的是业务点无须写任何处理,全部在框架处实现,比如框架调用了一个虚方法,由业务点实现,重现时里面可能调用了好几个方法,我们要做的是,得到所有方法的调用堆栈以及各自的时间。
这个刚好跟StackTrace是反过来的,StackTrace是在方法调用栈的最内层,而我的需求是在最外层,请问有无好的办法,或者有成熟的开源框架,请指点一二!
...全文
372 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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形式注入到框架中的的,这样我就可以监控系统的性能,知道哪些方法慢了

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧