序列化 速度测试
-----------------SoapFormatter -------------------------------------
DateTime t1 = DateTime.Now;
System.Runtime.Serialization.Formatters.Soap.SoapFormatter formator = new System.Runtime.Serialization.Formatters.Soap.SoapFormatter();
Stream myStream = File.Open("c://4.dat", FileMode.OpenOrCreate);
ModCommon.BlogContentItem[] list;
list = new ModCommon.BlogContentItem[10000];
for (int i = 0; i < 10000; i++)
{
ModCommon.BlogContentItem it = new ModCommon.BlogContentItem();
it.title = "ttttttttttttttttttt"+ i.ToString();
it.content = "ccccccccc" + i;
list.SetValue(it, i);
}
formator.Serialize(myStream, list);//生成文件大小4489KB
myStream.Close();
myStream = File.Open("c://4.dat", FileMode.OpenOrCreate);
this.Text = ((ModCommon.BlogContentItem[])formator.Deserialize(myStream)).GetValue(2).ToString();
myStream.Close();
DateTime t2 = DateTime.Now;
this.Text = ( t2.Second- t1.Second).ToString(); //=1秒
-----------------BinaryFormatter -------------------------------------
DateTime t1 = DateTime.Now;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formator = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
Stream myStream = File.Open("c://4.dat", FileMode.OpenOrCreate);
ModCommon.BlogContentItem[] list;
list = new ModCommon.BlogContentItem[10000];
for (int i = 0; i < 10000; i++)
{
ModCommon.BlogContentItem it = new ModCommon.BlogContentItem();
it.title = "ttttttttttttttttttt" + i.ToString();
it.content = "ccccccccc" + i;
list.SetValue(it, i);
}
formator.Serialize(myStream, list);//生成文件大小798KB
myStream.Close();
myStream = File.Open("c://4.dat", FileMode.OpenOrCreate);
this.Text = ((ModCommon.BlogContentItem[])formator.Deserialize(myStream)).GetValue(2).ToString();
myStream.Close();
DateTime t2 = DateTime.Now;
this.Text = (t2.Second - t1.Second).ToString(); //=0秒实际219毫秒
-----------------class ModCommon-------------------------------------
class ModCommon
{
public ModCommon(){ }
[Serializable]
public class BlogContentItem
{
public BlogContentItem() {}
public BlogContentItem(string _ID, string _title, string _desc, string _content, string _tag, string _url, string _category)
{
ID = _ID;
title = _title;
desc = _desc;
content = _content;
tag = _tag;
category = _category;
url = _url;
}
public override string ToString()
{
return title;
}
public string ID = "";
public string title = "wgscd";
public string desc = "";
public string tag = "";
public string url = "";
public string content = "";
public string category = "";
}
}
--------------------------------------------------------------------------