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 结构序列化下看看。