url重寫可能存在的效能問題

2021-06-19 20:47:44 字數 1205 閱讀 7963

為了使url位址更加友好(當然可能有別的原因),很多站點使用了url重寫,如在asp.net中通常要處理這樣的url重寫,必須在iis中將*.*對映到aspnet_isapi.dll(c:\windows\microsoft.net\framework\v1.1.432\aspnet_isapi.dll),然後在web.config進行相應的配置,最後在寫相應的處理程式,多數情況我們是那麼做的,搏客園也是那麼做的,這似乎沒有什麼問題。

但是搏客園很久以來一直存在效能問題,dudu和園子的很多朋友也想了很多法子去提高效能,取得了不小的成績,但是還是不是很理想,我也很想出乙份力,因為我很喜歡搏客園,我在園子學了很多東西,基本上是早中晚都要看上面的文章,直到昨天晚上乙個技術群的朋友問我乙個url重寫的問題之後,突然醒悟搏客園的效能問題很可能是url重寫造成的。

我朋友的問題是這樣:

和.html(該鏈結現在已經失效)都是通過url重寫定位到同乙個頁面 ,都是用同樣的處理程式,唯一不同的是為了處理這樣沒有副檔名的位址他必須將*.*對映到aspnet_isapi.dll,而.html則是將*.html對映到aspnet_isapi.dll,結果發現.html的效能比好十至二十倍,他是用loadrunner進行測試的,他對這樣的結果感到很鬱悶。我開始的時候也感到不可思議,*.*和*.html到底什麼區別呢,*.*就是該頁面所有的請求,包括css檔案和所有的檔案都有用他寫的url重寫處理程式去處理,*.html則沒有,只是乙個請求,問題就出現在這裡了,這個頁面有超過20個吧,請求乙個頁面要同時用url重寫處理程式去處理那麼多,能不慢嗎?怎麼辦呢?因為他們想用這樣的url,這樣比較友好,所以還是要用*.*,思考一會兒之後我告訴他,讓你的url重寫程式不處理那些檔案就行了,怎麼做呢?有兩個方法:方法1,把存放所在的資料夾轉化成乙個虛擬目錄,在然後移處該虛擬目錄*.*的對映,這樣一來他的url重寫程式就不會去處理檔案,當然存放別的不需要url重寫程式的檔案也要象資料夾做類似的處理,方法2,新建乙個站點,如用存放檔案,原理是一樣的,都是讓你的url重寫處理程式不處理那些檔案。

一切ok,他跟我說今天早上他到公司測試一下。

為了驗證我的想法,我今天自己也寫了乙個程式去測試,效能也是相差近20倍,good,我的想法是正確。

或許我的想法或測試結果有錯誤,這裡歡迎pk。

也希望這篇文章對搏客園的效能問題有所幫助,因為搏客園出現的問題可能和我朋友的站點很相似。

ps:寫完這篇文章的時候我問了一下我那朋友的測試結果,他說:「原來只能撐到50個人。現以700以上都沒有問題 。」

Hibernate反向工程可能存在的問題

在通過hibernate反向生成對映檔案和實體類的時候,會自動將表名以及列名中的下劃線刪掉,這就造成二者不一致,雖然不影響對映關係,但是卻有很大的隱患,因為hibernate的hql語句中屬性操作只支援對實體類的操作,而非屬性操作則既可以採用實體類的屬性也可以採用資料庫的欄位名,這時候很容易出現問題...

Ubuntu caffe中可能存在的問題合集

先給出在ubuntu16.04下安裝caffe的教程 cpu 本文是在新安裝的ubuntu16.04上進行caffe的安裝,每個版本的ubuntu安裝略有不同,請自行搜尋。q1 pydotfailed to call graphviz.please install graphviz and ensu...

php if中存在賦值可能會存在的問題

if a 11 b 22 輸出 我被執行了 var dump a 輸出bool true var dump b 輸出int 22 if a 0 b 22 未被執行 var dump a 輸出bool false var dump b 輸出null 解釋 第乙個變數都會變成boolean,如果它的值不...