我想知道读取 xml 数据是否比从数据库读取更快。所以我准备了一个数据库 Sql compact 4。并创建了一个包含 10000 条记录的表。我还创建了一个包含相同 10000 个元素的 xml 文档。
我决定阅读它们并比较每个所需的时间
所以我的代码如下:
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