Inside MSXML Performance(MSXML性能分析) (2)

原创 2002年07月15日 09:48:00

Metrics<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

度量指标

There are four key performance metrics that most of you are interested in as you develop your XML-based Web application:

当开发基于XMLWeb应用程序时,大部分人对以下四个主要的性能度量指标感兴趣:

·                   Working set: The peak amount of memory used by MSXML to process requests. Once the working set exceeds available RAM, performance usually declines sharply as the operating system starts paging memory out to disk.

·                   工作集(Work set):MSXML处理请求的峰值内存空间。一旦处理空间超过了可用的RAM,操作系统将页面调度到磁盘,性能通常会急剧下降。

·                   Megabytes per second: Simply a measure of raw speed for a given operation, such as the document load method. By itself it is interesting, but to get the real picture for a production application, you really need to consider the next two metrics as well.

·                   百兆字节每秒:简单衡量一给定的操作(如文件load方法)的速度。但是在实际应用中,你还需要考虑以下两个衡量标准。

·                   Requests per second: A measure of how many requests the XML parser can handle per second. An XML parser might have a high megabytes-per-second rate, but if it is expensive to set up and tear down that parser, it will still have a low throughput in requests per second. This metric can help you calculate how many clients your server can handle under a peak load. Obviously, this depends on how heavily the clients are going to load up your server. For example, if the clients hit the server at a peak rate of one request per second, and if the server can do 150 requests per second, the server can probably handle up to 150 clients.

·                   每秒处理的请求数:用来表示XML解析器每秒可处理的请求数。一个XML解析器可能每秒处理的百兆字节量很高,但是如果初始化和关闭该解析器的代价很大,那么它的每秒处理请求数仍旧很低。这个度量指标可以帮助你计算在峰值负载下,服务器能够接受多少客户。显然,这取决于客户端访问服务器的频率。例如,如果每个客户端点击服务器的峰值是每秒一个请求,而服务器能够在一秒钟内处理150个请求,那么服务器就能够同时处理150个客户。

·                   Scaling: A measure of how well your server can process requests in parallel. If your server is processing 150 client requests in parallel, then it is doing a lot of multi-threading. Processing 150 threads in parallel is rather much for one processor, which will spend a lot of time just switching between these threads. In this scenario, you might add more processors to the computer to share the load.

·                   伸缩性:这是用来表示服务器并行处理请求的能力。如果你的服务器能够并行处理150个客户端请求,那么它会同时处理很多线程。并行处理150个线程对于一个处理器来说负担很大,大部分时间都消耗在线程切换上。在这种情况下,你必须增加更多的处理器来分担负荷。

For example, a quad-processor server would need to process only 37 threads per processor—a more reasonable amount. (Scaling beyond this can be done with Web farms.) The goal is to scale linearly with the number of processors you add (for example, a quad-processor server should be four times faster than a single-processor computer). However, this is rarely achieved because there is usually some sort of contention for shared resources, such as memory, file system, registry, and network. Most components also contend for their own internal shared resources (for example, a global state that is protected by locks). Typically, when you add processors, scaling problems become a lot more obvious. For more information on scaling up and scaling out, see the Duwamish Diary column.

例如,对于一个四处理器的服务器,每个处理器只需要处理37个线程了,这是更合理的数量。(Web farm可以用来处理更高层次的伸缩性。)我们的目的是使得增加的处理器数量与性能的提高成正比(例如,一个四处理器的服务器应该比单处理器的计算机要快四倍)。但是,这通常是做不到的,因为还有很多类型的内容要共享,如内存,文件系统,注册表和网络。大部分组件还要竞争一些内部的共享资源(例如,一个全局状态被锁保护了)。通常,当你增加处理器时,伸缩性问题变得明显起来。想要得到更多伸缩性方面的资料,请查阅Duwamish Diary的专栏文章。

Disclaimer: I want you to understand that the numbers published here are not official in any way, but are intended to paint the overall picture so that you can get a feel for what kinds of things to expect and be able to make the right design choices while building your XML applications.

声明:我想让你们理解,这里发表的数据并不是官方正式的,只是用来让你们有个全局的感觉:当建立XML应用程序时你必须考虑哪些事情,结果会怎样,应该做怎样的设计选择。

MSXML应用总结 开发篇(上)

转载地址:http://blog.sina.com.cn/s/blog_48f93b530100ejv9.html   本篇是接前文“MSXML应用总结 概念篇”写的,主要总结一下MSXML DOM...
  • ljh0302
  • ljh0302
  • 2016年01月14日 16:13
  • 635

MSXML 解析XML文件

MSXML 解析XML文件  changjiang  1  wang  2 1.先要#Import 2.要添加命名空间 3.创建组件两种方式C...
  • aasmfox
  • aasmfox
  • 2015年11月18日 21:24
  • 608

MSXML的不同版本使用

我参与了IE7的开发过程,看到了在IE浏览器中形形色色使用MSXML的方法。显然有一些东西困扰着开发者:MSXML“混乱”的版本以及如何创建“正确”的实例。下面是一段非常常见的代码: if (Web...
  • u011519892
  • u011519892
  • 2014年03月11日 19:41
  • 1881

C++ 操作XML的完整例子——MSXML篇

写本文的目的是为了方便大家了解C++ MSXML操作方法。 当然,C++中对MSXML的调用有多种,本文采用的方法是完全参照MSXML SDK提供的文档进行操作。 如果有什么错误,欢迎指正。 ...
  • lzl001
  • lzl001
  • 2013年04月18日 18:57
  • 738

MSXML创建xml文件方法

void CCVideoDlg::CreateXML() { char saveXMLReportName[32]=”xmlReport.xml”; MSXML2::IXMLDOMDocumen...
  • yinbinglengyue
  • yinbinglengyue
  • 2013年11月28日 16:08
  • 1359

安装office2010提示未安装msxml6.10.1129.0解决办法

1、电脑新安装的系统,一般系统会自带office软件,如果卸载这个软件再安装这个软件,就会提示缺少MSXML组件,安装程序无法进行 2、...
  • xunan003
  • xunan003
  • 2017年04月10日 18:33
  • 2907

使用MsXML存取XML(2)

使用MsXML存取XML(2) 与JavaScript相比而言,在C++中调用COM比较麻烦,MsXML库是一组COM动态库,这意味Visual C++应用程序必须以COM调用方式调用MsXML组件...
  • zzia72
  • zzia72
  • 2013年10月17日 14:13
  • 692

MSXML使用教程

在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过...
  • ljh0302
  • ljh0302
  • 2015年08月26日 11:40
  • 467

mfc通过MSXML读写xml

#include #include //需要下载msxml4.dll的库 #import "msxml4.dll" using namespace MSXML2; using namespace...
  • tianyu030963
  • tianyu030963
  • 2013年09月18日 14:18
  • 441

VC 使用msxml6.dll动态链接库中的函数读写XML文件

VC 使用msxml6.dll动态链接库中的函数读写XML文件
  • qq2399431200
  • qq2399431200
  • 2013年12月26日 15:10
  • 4864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Inside MSXML Performance(MSXML性能分析) (2)
举报原因:
原因补充:

(最多只允许输入30个字)