[英]asp.net code executes very fast on development while very slow on production
我有以下代碼來構建一個大字符串。 它在我的開發PC上運行良好,大約需要2秒鍾才能完成所有任務,但是當我將它們放在生產服務器上時,則需要10到20秒鍾,具體取決於未知的事物。 時間是從TimePoint1到TimePoint2計算的。
順便說一句:abstractTable.GetWordCountInList(listID)僅包含一行:return 100;
生產服務器上的所有其他功能都可以正常工作,但這一功能除外。 Oracle DB服務器和Web服務器位於同一台計算機上,該查詢返回大約5000條記錄。 產品服務器的數據與開發服務器的數據相同。
public const string WordXMLItemTemplate = @"<S I=""{0}"" W=""{1}"" L=""{2}"" F=""0"" P=""0"" />";
int totalCounter =0;
int wordCounter = 0;
int listID = 1;
OracleConnection wordLibConn = ConnectionManager.GetNewConnection();
wordLibConn.Open();
try
{
OracleCommand comm = new OracleCommand();
comm.Connection = wordLibConn;
comm.CommandText = "Select WordID from WordTable Order By Lower(Word) ASC";
OracleDataReader dataReader = comm.ExecuteReader();
try
{
// TimePoint 1
while (dataReader.Read())
{
totalCounter++;
wordCounter++;
wordXML = wordXML + string.Format(WordXMLItemTemplate, totalCounter, dataReader[0].ToString(), listID);
if (wordCounter % abstractTable.GetWordCountInList(listID) == 0)
{
wordCounter = 0;
listID++;
}
}
}
finally
{
dataReader.Close();
}
}
finally
{
wordLibConn.Close();
}
// TimePoint 2
我經歷了幾個月的苦難,非常感謝您的任何建議。
為您自己創建可能導致此速度變慢的潛在行或代碼片段的列表。 測量所有這些,並查看測量結果。 希望您能找到造成停頓的確切位置,並且您將更接近解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.