首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

C#反序列化Deserialize慢求解决办法

2013-02-19 
C#反序列化Deserialize慢求解决方法基本代码fileStream new FileStream(fileName, FileMode.Open)Binar

C#反序列化Deserialize慢求解决方法
基本代码

  fileStream = new FileStream(fileName, FileMode.Open);
  BinaryFormatter binaryFormatter = new BinaryFormatter();
  IPcrDataFile aa =(IPcrDataFile) binaryFormatter.Deserialize(fileStream);
  fileStream.Close();   
  return aa;

这段代码反序列化一个文件大概要300ms而我一次要读取的文件有200到300个,所以每次扫描读取文件就要一两分钟,严重不合领导要求。 要

求最慢在15S以内要读完,求解决方案
[解决办法]
慢不慢看你数据的量了,代码就是这几行,除非你自己去实现持久化
[解决办法]
BinaryFormatter 没办法再提升性能了。

你可以考虑从设计角度上让程序更“快”些,比如用到时再加载(lazy load)。

或者一次读取尽可能少的文件。还有利用多线程(如果机器是多核的,才效果明显)读取
[解决办法]
明显是设计问题,把xml当数据库用妄图提高性能。

很多初学者作的C/S的程序都是一次性读取所有数据绑定到控件,人家都没有慢得15s都搞不定。
[解决办法]
“元芳,你怎么看!”元芳:“这里面一定隐藏这一个天大的秘密。”“我靠,果然有个天大的MM”。
===========================================================================================

sorry,我想不出来,发个笑话,给你解解压。。
[解决办法]
给他一个进度条,慢慢反序列化
[解决办法]
你如果没有什么需要隐藏的数据就直接 XML 结构序列化下看看。

热点排行