我想知道如果讀取xml數據比從DataBase讀取更快.. 所以我準備了一個數據庫Sql compact 4.並創建了一個包含10000條記錄的表.. 也創建了一個xml包含相同10000個元素的文檔。XML vs Entity框架閱讀速度
,我決定閱讀和比較對各一個
的時間,所以我的代碼如下:
protected void btn_Click(object sender, EventArgs e)
{
int entTime = DateTime.Now.Millisecond;
Database1Entities1 ent = new Database1Entities1();
foreach (var item in ent.ttts)
{
string x = item.id.ToString();
}
entTime = DateTime.Now.Millisecond - entTime;
lblEntity.Text = "Entity reading: " + entTime.ToString();
//----------------------------
int xmlTime = DateTime.Now.Millisecond;
XDocument doc = XDocument.Load(Server.MapPath("/mydoc.xml"));
foreach (var item in doc.Root.Elements())
{
string ss = item.Value;
}
xmlTime = DateTime.Now.Millisecond - xmlTime;
lblXL.Text = "xml reading: " + xmlTime.ToString();
}
結果讓我知道...做我出錯了?
在毫秒:
XML讀數:7
實體讀數:117
XML讀數:5
實體讀數:113
==== =============
所以讀取XML文件比讀實體框架更快?
或我的數據不夠大?
您輸入的高度讚賞:)
編輯:
我開始使用秒錶,結果是一樣的..
然後我在DB增加了記錄號爲30000;還XML文件現在包含30000記錄......同樣的結果..
然後我申請的意見和作出的閱讀環路1000的時間......所以現在的代碼如下所示:
Stopwatch sw = new Stopwatch();
sw.Start();
Database1Entities1 ent = new Database1Entities1();
for (int z = 0; z < 1000; z++)
{
foreach (var item in ent.ttts)
{
string x = item.id.ToString();
}
}
sw.Stop();
lblEntity.Text = "Entity reading: " + sw.ElapsedMilliseconds;
//----------------------------
sw.Reset();
sw.Start();
XDocument doc = XDocument.Load(Server.MapPath("/mydoc.xml"));
for (int z = 0; z < 1000; z++)
{
foreach (var item in doc.Root.Elements())
{
string ss = item.Value;
}
}
sw.Stop();
lblXL.Text = "xml reading: " + sw.ElapsedMilliseconds;
和結果證實三次如下:
XML閱讀:678
實體閱讀:8095
XML閱讀:666
實體閱讀:73628
XML閱讀:671
實體閱讀:73006
你的結果似乎沒有結果,目前還不清楚。平臺,硬盤等硬件都很重要。但是,在大多數情況下閱讀XML可能會更快。但現在嘗試查詢或更新... –
當可執行文件設置爲調試並在Visual Studio中時,我發現EF速度較慢,但設置爲釋放並運行時沒有/ Visual Studio以外版本的速度較快x10。 –
10000是非常小的..有1,00,000條記錄.. – Anirudha