为什么我的c#程序运行这么慢呢?

ondelettes 2003-12-13 09:37:17
发现在一个建立一个类的实例的时候,占用了很多时间
这个类是用来parse文件
parser = new FileParser(ins);
这个语句用了绝大部分的时间
其中ins ins = new BufferedStream(new FileStream(ofdlg.FileName, FileMode.Open, FileAccess.Read));
要parse的文件大约500k,内存基本上没有占用多少,但cpu占用率在那一阵子很高

在FileParser的构造函数里面,主要是执行
this.m_ins = new BinaryReader(ins);
可这个也不需要运行很长时间

经过仔细调试,发现调试光标进入这个类的文件的过程所需要的时间是最长的(就是在定义那些private变量和类构造函数之前)。这是为什么呢?

我的系统是2000 pro + .net 2003
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rock1981 2003-12-15
  • 打赏
  • 举报
回复
gz
枫叶 2003-12-14
  • 打赏
  • 举报
回复
使用FileStream不需要设置缓冲区,系统为IO通道已经设置了。
juqiang 2003-12-14
  • 打赏
  • 举报
回复
见http://expert.csdn.net/Expert/topic/2561/2561075.xml?temp=.8545343
diskA 2003-12-14
  • 打赏
  • 举报
回复
up
qimini 2003-12-13
  • 打赏
  • 举报
回复
FileStream已经包含了文件缓冲,不需要设置BufferedStream。我读取小于10M的文件时都是很快的,你可以在构造FileStream时更改缓冲区大小(好象是1-8的数字),我是设置为2。当然如果文件太大,你可以异步读取(FileStream本身集成了这些功能)



BTW,一般只有NetworkStream才需要设置缓冲区

希望能对你有所帮助~~~

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧