C 各種序列化效能比較

2021-06-12 02:57:22 字數 2261 閱讀 3984

今天簡單做了乙個各種序列化的用時比較,最終結果如下:

xml:262

json:36

自己寫的序列化:17

xml(xmlserializerr,無需標記[serializable])=18

二進位制(binaryformatter)=45

具體**如下:

protected void button2_click(object sender, eventargs e));}

string msg = "";

#region 序列化為xml

stopwatch watch = new stopwatch();

watch.start();

string xmlresult = xmlserialize(tdlist);

watch.stop();

msg += "xml:" + watch.elapsedmilliseconds.tostring() + "

";#endregion

#region 序列化為json

watch.restart();

string json = jsonserialize(tdlist);

watch.stop();

msg += "json:" + watch.elapsedmilliseconds.tostring() + "

";#endregion

#region 另外一種xml

watch.restart();

xmlserializer xs = new xmlserializer(tdlist.gettype());

using (memorystream stream = new memorystream())

watch.stop();

msg += string.format("xml(xmlserializerr,無需標記[serializable])=

", watch.elapsedmilliseconds);

#endregion

#region 序列化為二進位制

watch.restart();

trymsg += string.format("二進位制(binaryformatter)=

", watch.elapsedmilliseconds);

}catch (exception ex)

watch.stop();

#endregion

#region 使用soap

watch.restart();

//使用soap序列化

trymsg += string.format("soap(soapformatter)=

", watch.elapsedmilliseconds);

}catch (exception ex)

watch.stop();

#endregion

lblserier.text = msg;

}private static string xmlserialize(object o)

private static t xmldeserialize(string s)

catch

}private static string jsonserialize(object o)

}private static t jsondeserialize(string s)

}///

/// 將物件根據格式(xml/json)序列化成字串結果

///

/// 目標物件

/// 輸出格式

///

public static string serialize(object o, format format)

else

}///

/// 將字串根據格式(xml/json)反序列化成指定型別的物件

///

/// 指定型別

/// 目標字串

/// 輸入格式

///

public static t deserialize(string s, format format)

else

}public enum format

[serializable]

public class testdata

set}

}internal string _address = string.empty;

public string address

set}}}

各種Java序列化效能比較

總結 每個介面的優點和缺點 serializable介面 優點 內建支援 優點 易於實現 缺點 占用空間過大 缺點 由於額外的開銷導致速度變比較慢 externalizable介面 優點 開銷較少 程式設計師決定儲存什麼 優點 可能的速度提公升 缺點 虛擬機器不提供任何幫助,也就是說所有的工作都落到...

序列化反序列化效能對比

我們通常把序列化稱為編碼 ecode 它將物件序列化為位元組陣列,用於網路傳輸,資料持久化或者其他用途。反序列化稱之為解碼 decode 需要使用特定的序列化技術,把從網路 磁碟等讀取的位元組陣列還原成原始的物件,以便後續的業務操作。1.序列化之後的碼流大小。2.序列化 反序列化的速度。3.資源占用...

各種排序方法的效能比較

測試環境說明 win xp下,vs2008,主頻 core2 雙核2.53ghz 下面是測試的 using system using system.collections.generic using system.linq using system.text using system.collect...