BT下载真的伤硬盘吗?
(yanlb2000, 2005.06.03)
BT下载是目前最热门的P2P下载方式,比传统下载方式快速方便得多。很多人热衷于BT下载,我也喜欢BT下载。
然而,伴随着BT下载,总有个话题,讨论得很热烈。那就是,BT下载虽然好,但是很伤硬盘。如果从保护硬盘角度考虑,就不要太多地使用BT下载。
很多网友也提到,BT下载如何费硬盘,下载的时候系统负担重,硬盘不停地读写,噪声大,发热明显,BT了一段时间,硬盘就有坏道了。等等。
然而,我却不这么认为。我的意见是,BT下载与其他应用软件比如下载软件差不多,不会加速硬盘的损坏。
我们有必要了解一下硬盘的基本工作原理。当然不是详细的,只是简短介绍下。硬盘腔体里面,基本就是几片金属盘片在高速转动,盘片表面覆盖着磁性物质,就是记录信息的,故称磁盘。另外,还有读写臂控制读写磁头在磁盘表面附近,与磁性物质交互作用,完成信息的读取或写入。有一点必须明确,因为磁盘的高速转动,所以磁头与盘片表面形成一个气垫层,类似飞行,并没有直接的接触。读写臂可以沿着磁盘径向做内外的摆动(寻道),配合磁盘的旋转,就可以使磁头访问盘片上的全部数据区域了。
所以,只要电脑开机(休眠等不算),硬盘就一直处于高速旋转状态,而且不管有无数据的读写存取,磁头与盘片之间始终是不接触的。并不是如某些人想像的,硬盘读写的时候特别"费"或说"伤",磁头也不会因为读写而去摩擦盘片,出现什么磨损。最多说,因为频繁的读写,读写臂可能要不停地来回摆动寻道,这可能是唯一多增加的机械动作,但对硬盘本身的设计和功能来说,这根本不算什么。
诚然,BT的时候,硬盘灯一直在闪烁,盘体也因为不断寻道而发出更大的噪音。听着是觉得不安心。但其实这也都是硬盘的正常工作。
一个硬盘,买来装机箱里,就是用的。坏或者不坏,跟很多因素有关,比如该硬盘的设计和制造工艺、每个具体硬盘的制作差异或说运气,还有当时使用的环境比如电源质量的好坏,用户是否正常开关机等等。质量差的、运气不好的硬盘,不BT,不怎么用,一样会坏。而一个良好的硬盘,配合正常的电脑操作,不管这么用,不管是否BT,照样会长寿。
既然说BT下载不会加剧硬盘损伤,但实际情况是,开着BT下载的时,特别是有多个下载同时进行的时候,觉得系统负担明显加重,任务切换不那么灵活了,内存和CPU占用明显上升,硬盘疯狂地读写。明摆着BT是让系统累着了,为什么呢?
其实,引起上述现象的,或者如很多网友或文章说BT伤硬盘的,都忽视了一个很重要的、本质的原因。那就是,现在的BT软件基本上都属于效率严重低下的软件。
现在的BT客户端软件很多,五花八门。但实际上,它们大部分都是同源的。一个叫Bram Cohen的年轻人开创性地开发了互助下载的BitTorrent软件,推出后大受欢迎。然而,他在编写这个软件的时候,使用的是Python语言。Python语言的确是个优秀的开发语言,设计优雅,有出色的模块化特性,与C语言等的配合也很好,适合于开发大规模的项目。然而,Python同时是一种解释性的脚本语言,这样其运行效率就很低,其实就算是在各种解释性的语言之间比较,Python的效率也算差的。
因为这个原因,使用Python编写的BT软件,就明显表现出很低的运行效率,不但慢,而且对CPU、内存的占用很多,对硬盘的读写也非常频繁。对硬盘的读写虽不是造成硬盘损坏的原因,但对系统的影响却是很大的,因为外部I/O明显占用CPU、总线等资源。
原始的BT软件居然还是单窗口单任务的,要同时进行多个BT下载就要开多个BT窗口,这样每个窗口背后其实就是一个耗费很多资源的Python解释环境。只要多开几个BT窗口,就明显感到占用CPU、内存、硬盘等很厉害,系统反应变慢。在这样的运行状态下,认为伤硬盘,也就可以理解了。
后来,又出现了很多其他BT软件。但实际上,这些BT软件大部分都是基于Cohen的BT内核制作的,只是加上了自己的外壳界面。这些界面当然作了很多改进,比如更方便的操作,更多的辅助功能,将单窗口单任务改进为单窗口多任务等。这样虽然改进不少,但核心部分是没有多少改变的。
可喜的是,现在也已经有一些BT软件,是完全独立开发,不再基于原来的Python内核了。我这里推荐的就是著名的BitComet,一个中国人开发的,优秀的BT客户端软件。这个软件是用C++开发编译的,使用的是x86的本机代码而不是解释运行环境,调用的是Win32 API,而不是Python库,所以,在运行效率和系统开销上,远不是原BT软件能比的。使用了这个软件,你就会觉得BT下载原来真的不需要占用太多系统资源的,就跟后台开着的其他下载软件差不多。而且,BitComet还增加了很多方便的功能和针对硬盘缓存、针对WindowsXP防火墙、内网等的优化,的确是款非常好的BT软件。
最后,还是总结一下。
1, BT下载并不特别损伤硬盘,而只是正常地使用硬盘。
2, 要降低BT下载的系统开销和硬盘读写,提高效率,就推荐不使用传统的基于Python内核的BT软件,而是如BitComet等完全独立开发的软件。这一招不需要额外开销,但效果立竿见影,很明显。
3, 降低硬盘读写,提高效率的另一有效方法是给系统增加内存。内存多了,不但操作系统运行更流畅,而且也有更多的内存用作硬盘缓存。这招效果也很明显,但是需要花点银子。