我們有以下經典的asp代碼可以讀取xml文件,當有超過10個併發請求到該頁面時,它顯示的性能很差,有人能夠找出性能問題在此代碼(我們知道的這是使用FileSystemObject的一個問題,但我們並沒有爲它的替代品!):如何優化這個從xml文件中讀取的代碼
set filesys=server.CreateObject("Scripting.FileSystemObject")
if filesys.FileExists(sourcefile) then
set source = Server.CreateObject("Msxml2.DOMDocument")
source.validateOnParse = false
source.resolveExternals = false
source.preserveWhiteSpace = false
source.load(sourcefile)
If source.ParseError.errorCode <> 0 Then
str_head=source.selectSingleNode("/LIST/ITEM/NEWSITEM/HEADLINE//").text
str_by=source.selectSingleNode("//LIST//ITEM//NEWSITEM//PROVIDER//").text
News_date_orig = source.selectSingleNode("/LIST/ITEM/NEWSITEM/CREATED//").text
str_date= formatdatetime(source.selectSingleNode("//LIST//ITEM//NEWSITEM//CREATED//").text,1)
set bodyNode=source.selectSingleNode("/LIST/ITEM/NEWSITEM//BODY//")
styleFile=Server.MapPath("/includes/xsl/template.xsl")
Set style = Server.CreateObject("Msxml2.DOMDocument")
style.validateOnParse = false
style.resolveExternals = false
style.preserveWhiteSpace = false
style.load(styleFile)
news_full = bodyNode.transformNode(style)
if len(news_full) < 10 then
news_full = str_abstract
end if
DiscriptionKeyWord = stripHTMLtags(news_full)
DiscriptionKeyWord=StrCutOff(DiscriptionKeyWord, 200, "...")
headerTitle=str_head
Set style=nothing
Set source = nothing
end if
set filesys= nothing
以下是stripHTMLtags功能:
Function stripHTMLtags(HTMLstring)
Set RegularExpressionObject = New RegExp
With RegularExpressionObject
.Pattern = "<[^>]+>"
.IgnoreCase = True
.Global = True
End With
stripHTMLtags = RegularExpressionObject.Replace(HTMLstring, "")
Set RegularExpressionObject = nothing
End Function
UPDATE:我放置了一個計時器來顯示讀取xml文件的函數的執行時間,發現在生產服務器上需要大約3秒鐘,而在我的PC上需要不到1秒鐘的時間!這是什麼意思?我迷路了。
我不認爲stripHTMLtags的原因,在這裏它的身體:功能stripHTMLtags(HTMLstring) \t設置RegularExpressionObject =新的RegExp \t隨着RegularExpressionObject \t .Pattern = 「<[^>] +>」 \t .IgnoreCase =真 \t。環球=真 \t尾隨着 \t stripHTMLtags = RegularExpressionObject.Replace(HTMLstring, 「」) \t設置RegularExpressionObject =什麼 端功能 – Cassini 2012-01-02 07:08:14
@Cassini:評論是不要把代碼的好地方。請編輯您的問題,並在其中包含「stripHTMLTags」的代碼。 – AnthonyWJones 2012-01-02 13:10:41
編輯...正如你可以看到它使用reguler表達式。 – Cassini 2012-01-02 17:33:29