vs2005学习笔记(2):xslt的性能测试
看了msdn上一篇关于xml的文章,What's New in System.Xml for Visual Studio 2005 and the .NET Framework 2.0 Release url:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnxml/html/sysxmlVS05.asp,其中有一节讲到性能问题。.
按该文章的描述我做了一个性能测试,得到的结果刚好相反,是V1.1 的xslTransform最快.。
下面是该测试的代码。
1:用V2的 XslCompiledTransform Class
2:用V2的XslTransform类
3:用V1的XslTransform类
下面是用ACT的测试结果

我晕,真不知ms搞什么鬼还是我文挡看错了。
欢迎同行们指正。
按该文章的描述我做了一个性能测试,得到的结果刚好相反,是V1.1 的xslTransform最快.。
下面是该测试的代码。
1:用V2的 XslCompiledTransform Class
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Collections;
5
using System.Web;
6
using System.Web.Security;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
using System.Xml.XPath;
12
using System.Xml.Xsl;
13
using System.IO;
14
15
public partial class XslCompiledTransformPage : System.Web.UI.Page
16

{
17
protected void Page_Load(object sender, EventArgs e)
18
{
19
int start, stop;
20
start = Environment.TickCount;
21
22
string dataPath = Server.MapPath("MenuData.xml");
23
string stylePath = Server.MapPath("MenuBar.xslt");
24
25
XsltArgumentList args = new XsltArgumentList();
26
args.AddParam("pmtPageName", "", "UseXslCompiledTransform");
27
XslCompiledTransform xslt = new XslCompiledTransform();
28
xslt.Load(stylePath);
29
MemoryStream msm = new MemoryStream();
30
xslt.Transform(new XPathDocument(dataPath), args, msm);
31
msm.Position = 0;
32
StreamReader sr = new StreamReader(msm);
33
string html = sr.ReadToEnd();
34
msm.Close();
35
sr.Close();
36
37
Response.Write(html);
38
39
stop = Environment.TickCount;
40
int i = stop - start;
41
42
string guid = Guid.NewGuid().ToString();
43
Response.Write(guid + ": " + i.ToString());
44
45
Response.End();
46
}
47
48
}
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
2:用V2的XslTransform类
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Collections;
5
using System.Web;
6
using System.Web.Security;
7
using System.Web.UI;
8
using System.Web.UI.WebControls;
9
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
using System.Xml.XPath;
12
using System.Xml.Xsl;
13
using System.IO;
14
public partial class XslTransformPage : System.Web.UI.Page
15

{
16
protected void Page_Load(object sender, EventArgs e)
17
{
18
int start, stop;
19
start = Environment.TickCount;
20
21
string dataPath = Server.MapPath("MenuData.xml");
22
string stylePath = Server.MapPath("MenuBar.xslt");
23
24
XsltArgumentList args = new XsltArgumentList();
25
args.AddParam("pmtPageName", "", "UseXslTransform");
26
XslTransform xslt = new XslTransform();
27
xslt.Load(stylePath);
28
XPathDocument xpathdocument = new XPathDocument(dataPath);
29
30
MemoryStream msm = new MemoryStream();
31
xslt.Transform(xpathdocument, args, msm, null);
32
msm.Position = 0;
33
34
StreamReader sr = new StreamReader(msm);
35
36
string html = sr.ReadToEnd();
37
msm.Close();
38
sr.Close();
39
Response.Write(html);
40
41
stop = Environment.TickCount;
42
int i = stop - start;
43
string guid = Guid.NewGuid().ToString();
44
Response.Write(guid + ": " + i.ToString());
45
46
Response.End();
47
}
48
}
49
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
3:用V1的XslTransform类
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11
using System.Xml;
12
using System.Xml.XPath;
13
using System.Xml.Xsl;
14
using System.IO;
15
namespace WebApplication1
16

{
17
/**//// <summary>
18
/// WebForm1 的摘要说明。
19
/// </summary>
20
public class WebForm1 : System.Web.UI.Page
21
{
22
private void Page_Load(object sender, System.EventArgs e)
23
{
24
int start, stop;
25
start = Environment.TickCount;
26
27
string dataPath = Server.MapPath("MenuData.xml");
28
string stylePath = Server.MapPath("MenuBar.xslt");
29
30
XsltArgumentList args = new XsltArgumentList();
31
args.AddParam("pmtPageName", "", "UseXslTransform");
32
XslTransform xslt = new XslTransform();
33
xslt.Load(stylePath);
34
XPathDocument xpathdocument = new XPathDocument(dataPath);
35
36
MemoryStream msm = new MemoryStream();
37
xslt.Transform(xpathdocument, args, msm, null);
38
msm.Position = 0;
39
40
StreamReader sr = new StreamReader(msm);
41
42
string html = sr.ReadToEnd();
43
msm.Close();
44
sr.Close();
45
46
Response.Write(html);
47
48
stop = Environment.TickCount;
49
int i = stop - start;
50
51
string guid = Guid.NewGuid().ToString();
52
Response.Write(guid + ": " + i.ToString());
53
54
Response.End();
55
}
56
57
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
58
override protected void OnInit(EventArgs e)
59
{
60
//
61
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
62
//
63
InitializeComponent();
64
base.OnInit(e);
65
}
66
67
/**//// <summary>
68
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
69
/// 此方法的内容。
70
/// </summary>
71
private void InitializeComponent()
72
{
73
this.Load += new System.EventHandler(this.Page_Load);
74
75
}
76
#endregion
77
}
78
}
79
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
下面是用ACT的测试结果
我晕,真不知ms搞什么鬼还是我文挡看错了。
欢迎同行们指正。
转载于:https://www.cnblogs.com/shengsoft/archive/2005/04/24/144204.html