我正在用C#编写一个.NET程序,它使GET请求和下载页面解析 - 一种爬虫。我注意到它必须多次从流中读取才能下载每个页面,因为每个页面都很大。
目前我已将流缓冲区大小设置为5024字节。我的问题是,增加此大小并因此执行更少的流读取会更有效吗?或者,一次处理较少的数据是否更好?
基本上措辞不同 - 一次解析更多数据更快,不得不经常调用stream.read,反之亦然?
谢谢!
答案 0 :(得分:0)
通常,增加缓冲区的大小并一次装入更多数据会增加操作速度,但性能提升最多也是最小的。我认为你要尝试的是异步请求。就像是 this。这允许应用程序使用线程池同时从套接字或多个套接字读取,然后仅在有某些东西要处理时才对流进行处理。当数据被拉入缓冲区时,这会释放应用程序以执行其他操作。