第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

基于內(nèi)置BinaryFormatter的.Net序列化有哪些不足?

基于內(nèi)置BinaryFormatter的.Net序列化有哪些不足?

aluckdog 2019-11-19 10:45:43
基于內(nèi)置BinaryFormatter的.Net序列化有哪些不足?(性能,靈活性,限制)如果可能,請(qǐng)?jiān)诨卮鹬懈缴弦恍┐a。例:序列化的自定義對(duì)象必須使用[Serializable]屬性修飾或?qū)崿F(xiàn)ISerializable接口。不太明顯的例子:匿名類(lèi)型不能序列化。
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

數(shù)據(jù)的版本控制通過(guò)屬性進(jìn)行處理。如果您不擔(dān)心版本控制,那么這沒(méi)問(wèn)題。如果是的話,這是一個(gè)巨大的問(wèn)題。

屬性方案的麻煩在于,它在許多瑣碎的情況下(例如添加新屬性)都非常流暢,但是當(dāng)您嘗試執(zhí)行將兩個(gè)枚舉值替換為不同的新枚舉值(或任何其他枚舉值)時(shí),它會(huì)很快崩潰長(zhǎng)期持久性數(shù)據(jù)附帶的常見(jiàn)方案數(shù))。

我可以介紹很多麻煩的細(xì)節(jié)。最后,如果需要的話,編寫(xiě)自己的序列化程序非常簡(jiǎn)單。


查看完整回答
反對(duì) 回復(fù) 2019-11-19
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

我同意最后一個(gè)答案。性能相當(dāng)差。最近,我的編碼團(tuán)隊(duì)完成了將模擬從標(biāo)準(zhǔn)C ++轉(zhuǎn)換為C ++ / CLI的工作。在C ++中,我們有一個(gè)手寫(xiě)的持久性機(jī)制,該機(jī)制運(yùn)行良好。我們決定使用序列化機(jī)制,而不是重寫(xiě)舊的持久性機(jī)制。
在內(nèi)存占用量介于1/2和1 Gig之間的大多數(shù)舊模擬中,大多數(shù)對(duì)象具有指向其他對(duì)象的指針,并且在運(yùn)行時(shí)具有1000個(gè)對(duì)象,在一分鐘之內(nèi)將保留到大約10到15 Meg的二進(jìn)制文件。從文件還原是可比較的。
使用相同的數(shù)據(jù)文件(并排運(yùn)行),C ++ / CLI的運(yùn)行性能大約是C ++的兩倍,直到我們進(jìn)行持久性處理(新版本中的序列化)為止,編寫(xiě)過(guò)程需要3到5分鐘,序列化文件的大小約為10到20。序列化文件的大小約為舊文件的5倍。基本上,我們看到讀取時(shí)間增加了19倍,寫(xiě)入時(shí)間增加了5倍。這是不可接受的,我們正在尋找糾正此問(wèn)題的方法。

在檢查二進(jìn)制文件時(shí),我發(fā)現(xiàn)了一些問(wèn)題:1.所有類(lèi)型的類(lèi)型和程序集數(shù)據(jù)均以明文形式編寫(xiě)。這在空間上是無(wú)效的。2.每種類(lèi)型的每個(gè)對(duì)象/實(shí)例都寫(xiě)入了膨脹的類(lèi)型/裝配體信息。我們?cè)谑直3謾C(jī)制中所做的一件事是寫(xiě)出了一個(gè)已知的類(lèi)型表。在發(fā)現(xiàn)書(shū)面類(lèi)型時(shí),我們?cè)诖吮碇胁檎伊怂拇嬖?。如果不存在,則會(huì)使用類(lèi)型info創(chuàng)建一個(gè)條目,并分配一個(gè)索引。然后,我們將infor類(lèi)型作為整數(shù)傳遞。(類(lèi)型,數(shù)據(jù),類(lèi)型,數(shù)據(jù))此“技巧”將極大地減少大小。這可能需要兩次處理數(shù)據(jù),但是可以開(kāi)發(fā)“即時(shí)”流程,從而除了將其添加到表中,推送到數(shù)據(jù)流之外,

我希望重新實(shí)現(xiàn)一些核心序列化以這種方式對(duì)其進(jìn)行優(yōu)化,但是,可惜這些類(lèi)都是密封的!我們可能仍未找到捷徑。


查看完整回答
反對(duì) 回復(fù) 2019-11-19
  • 3 回答
  • 0 關(guān)注
  • 1061 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)