设为首页 收藏本站
查看: 1072|回复: 0

[经验分享] Using Developer Dashboard in SharePoint 2010

[复制链接]

尚未签到

发表于 2015-9-24 10:48:07 | 显示全部楼层 |阅读模式
  What Is Developer Dashboard
  Developer Dashboard是SharePoint2010提供的一个新功能,它可以在当前页面生成时(rendering)提供额外的性能信息和一些跟踪信息,帮助开发人员调试页面组件,监控页面上各组件代码的性能,帮助寻找页面可能的效率瓶颈根源。这对于有包含客户代码的页面时非常方便和有效。当Developer Dashboard被启用时,你可以在页面的底部得到页面在生成过程中有关控件加载、查询及执行时间的各种数据信息。这些信息包括:

  • 哪些控件被加载
  • 加载每个控件的时间
  • 数据库查询以及执行时间
  • 加载页面所触发的事件
  • 加载页面各个阶段的时间
DSC0000.png
  正如上图所示,这些跟踪信息都是基于页面上各个组件被加载的时间线和页面生命周期为时间线来组织的,清楚的描述了各个事件所消耗的时间及针对web服务器和数据库服务器的消耗。并且在Database Queries部分你可以很容易的看到具体执行的数据库查询以及所消耗的时间。这些以时间线为顺序的监控信息可以很容易的帮助您调试或寻找问题。
  你可能还注意到了Database Queries部分是可以点击的。当点击进入任何一个被执行的数据查询,你会看到有关该SQL调用的上下文及调用堆栈,以及IO开销等。
DSC0001.png
  How to enable Developer Dashboard


  • 编程实现:  创建一个基于.NET Framework 3.5的控制台程序,并将build设置为Any CPU(因为SharePoint是x64的)。拷贝下列代码:

  SPPerformanceMonitor perfmon = SPFarm.Local.PerformanceMonitor;
  perfmon.DeveloperDashboardLevel = SPPerformanceMonitoringLevel.On;
  perfmon.Update();
  编译并执行,OK。


  • 命令行实现:  在以Administrator身份运行的Command Line中执行下述命令:

  Stsadm –o setproperty –pn developer-dashboard –pv ondemand (or "on" or "off")
  当你将它设置为OnDemand时,网站管理员可以选择打开或者关闭。这样网站管理员可以选择打开或关闭特定网站集的监控输出,这将作为故障排除工具之针对特定的人群。
  一切似乎很好,所有WebPart和代码只要在页面内运行,都将有输出信息作为排除故障的工具,但很不幸的,你看到上图中的信息量了吗?很多,其实很不方便查找特定的事件和故障。你的代码中对于OnInit和Render方法的重写都会被自动的捕捉到,但是其余地方的代码却不会被发现。SPMonitoredScope可以帮助你track更多的代码并输出到Developer Dashboard中。
  Using SPMonitoredScope to monitor performance of your code
  使用SPMonitoredScope可以很方便的将某段代码的相关性能信息输出到Developer Dashboard中。使用SPMonitoredScope很简单,首先声明一个SPMonitoredScope的实例并赋予一个可以追踪的名字,将需要Track的代码写入即可。例如,下边的代码演示了插入一个列表项:

  using (SPMonitoredScope monitoredScope = newSPMonitoredScope("My Monitored Scope"))
  {
      // put code to monitor performance on here
      SPList testList = site.Lists.TryGetList("Test List");
      if (testList != null)
      {
          SPListItem listItem = testList.Items.Add();
          listItem["Title"] = string.Format("Test Item {0}", Guid.NewGuid().ToString());
          listItem["City"] = "Somewhere";
          listItem["Quantity"] = 3;
          listItem.Update();
      }
  }
  以上代码将会在Developer Dashboard中显示其执行的性能信息:
DSC0002.png
  在SPMonitoredScope中你还可以嵌套使用SPMonitoredScope对象以更详细的监控尽可能小的代码段来分析器性能。

  using (SPMonitoredScope monitoredScope = newSPMonitoredScope("My Monitored Scope"))
  {
      SPList testList;
  
      using (SPMonitoredScope getListMonitor = newSPMonitoredScope("Get List"))
      {
          testList = site.Lists.TryGetList("Test List");
      }
  
      using (SPMonitoredScope addListItemMonitor = newSPMonitoredScope("Add List Item"))
      {
          if (testList != null)
          {
              SPListItem listItem = testList.Items.Add();
              listItem["Title"] = string.Format("Test Item {0}", Guid.NewGuid().ToString());
              listItem["City"] = "Somewhere";
              listItem["Quantity"] = 3;
              listItem.Update();
          }
      }
  }
  正如期望的,我们在My Monitored Scope中看到了更为详细的监控段Get List和Add List Item。这样就能很清楚的看到每个代码段的性能情况。
DSC0003.png
  
  SharePoint 2010 Developer Dashboard Visualizer
  SharePoint 2010 Developer Dashboard Visuallizer是基于jQuery的扩展Developer Dashboard的插件,它通过可视化的图形界面让你更清楚的看到代码的性能情况。
DSC0004.png
  
  Have FunJ

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118115-1-1.html 上篇帖子: 在SharePoint中修改AD用户密码的WebPart 下篇帖子: 使用SharePoint 2010 客户端对象模型进行文档库及文档的操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表