C#高级编程:性能监视.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
性能监视可以用于获取正常运行的服务的信息。性能监视是一个很好的工具,它能帮助我们了解系统的工作负荷,观察变化及趋势。 Windows 2000有许多性能对象,例如System、Memory、Objects、Process、Processor、Thread和Cache等。这些对象都有许多的监视点。例如,使用Process对象,可以监视所有进程或某一具体进程的用户时间、句柄数、页错误和线程数等。一些应用程序也添加具体的对象,例如SQL Server。 对于QuoteService示例应用程序而言,要获取的信息是客户请求的数量和通过网络发送的数据有多少等。 1. 性能监视类 System.Diagnostics命名空间中包含下述性能监视类: ● PerformanceCounter类可以用于监视数量和编写数量。此外,使用这个类还可以创建新的性能种类。 ● 使用PerformanceCounterCategory可以遍历所有现有的种类并创建新的种类。可以编程获取种类的记数器。 ● PerformanceCounterInstaller类用于性能记数器的安装。这个类的用法与前面的EventLogInstaller相似。 2. Performance Counter Builder 要创建新的性能记数器种类,可以选择Server Explorer中的性能记数器,再在弹出的菜单中选择菜单项Create New Category…,这将启动Performance Counter Builder,如图32-25所示。 图? 32-25 把性能记数器种类设置为Quote Service。表32-6中给出了服务的所有性能记数器。 表? 32-6 名 ? 称 描 ? 述 类 ? 型 # of Bytes sent 发送给客户机的#字节总量 NumberOfItems32 # of Bytes sent / sec 一秒内发送给客户机的#字节 NumberOfItems32 # of Requests 请求的总数# NumberOfItems32 # of Requests / sec 一秒内请求的总数# NumberOfItems32 Performance Counter Builder把配置写到性能数据库中。使用System.Diagnostics命名空间中PerformanceCategory类的Create()方法,可以动态地把配置写到性能数据库中。使用Visual Studio .NET,可以在以后为其他系统添加安装程序。 3. 添加PerformanceCounter组件 接下来,要从工具箱中添加PerformanceCounter组件。这里不使用工具箱的种类组件,而是直接把前面创建的性能计数从Server Explorer拖放到设计视图上。这样实例会自动配置:所有对象的CategoryName属性都设置为Quote Service Count,CounterName属性设置为选中种类中的一个可用值。这个应用程序不是读取性能计数,而是写入,所以必须把ReadOnly属性设置为false。 private void InitializeComponent() { ? //... ? // performanceCounterRequestsPerSec ? // ? this.performanceCounterRequestsPerSec.CategoryName = Quote Service Counts; ? this.performanceCounterRequestsPerSec.CounterName = # of Requests / sec; ? this.performanceCounterBytesSentTotal.MachineName = NAGELC ? this.performanceCounterRequestsPerSec.ReadOnly = false; ? // ? // performanceCounterBytesSentTotal ? // ? this.performanceCounterBytesSentTotal.CategoryName = Quote Service Counts; ? this.performanceCounterBytesSentTotal.CounterName = # of Bytes sent; ? this.performanceCounterBytesSentTotal.MachineName = NAGELC ? this.performanceCounterBytesSentTotal.ReadOnly = false;

文档评论(0)

0716 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档