摘要:最近大家可能注意到了,到处在谈节约能源,节水、节电、节燃油,要建立节约型社会和城市。其实我平时还是比较节约的,下班的时候关掉电脑,看见在流水的水龙头都要主动去关掉。
节约能源,人人有责,作为软件工程师,能做什么呢?个人认为这是一个有意思的话题,这里提一些想法,让我们的应用程序也象各个商场里畅销的高能效比电器一样受人欢迎
1、尽量利用 Cache(内存操作应比磁盘操作省电吧) ,降低对磁盘的读取,或对远程资源的再次读取。
2、程序可以随需应变,随任务改变运行参数,减少无谓的资源浪费。
例如一个程序定期要对数据库扫描,以处理新的任务,但如果这些任务只在工作时间(白天)产生,那在晚上扫描的间隔就可以设置得更长一些,或者干脆停止扫描。Intel 的 SpeedStep 技术就有点这个意思。
3、如果任务的实时性要求不是很高,可以考虑将多个任务以批处理的方式运行。
4、数据在传输时进行压缩。
最近对这个关注比较多,因为内部很多系统之间通过 FTP 来交换大量数据交换,网络带宽有限,很容易造成瓶颈,从 http://www.maximumcompression.com 网站对于数据的压缩的比较结果来看,大多数文本的压缩都在 80% 以上,所以低带宽的情况,压缩后传递能大大增加有效传输速度。象新版本的 Server-U 和 FTP Voyager 之间传输数据时,就能采取自动压缩(利用 ZLib)技术,效果明显。
我用一个 5G 的数据文件测试,FTP 的速率限制在1M(模拟低带宽的情况),只用 10 分钟左右,如果使用其它没有压缩技术传输的 FTP 客户端,则耗时将达 80 分钟。当然压缩会带来 CPU 的消耗,但主观认为压缩+传输+解压缩 的能源耗应该比未压缩传输小很多 :P
Apache 和 IIS 的 Web Server 也支持 gZip 的功能,不知道为什么用的人很少
5、程序具有快速保留和恢复现场的能力。
现在用笔记本,经常使用待机功能,开关迅速,在离开的时候能待机省电,回来的时候能马上开机使用。想想,要是全世界人民都在使用待机功能,节省的电能不知有多少呀。
有些系统或应用程序一旦开始运行,就不敢再关了,因为关掉之后再启动,要经过很多人的干预,这样用户就不敢轻易关机了,即使在没有任务运行的时候。
6、设计简捷优秀的用户界面
花里胡哨的东西(动画、声音等)要谨慎使用,其在传输和客户端的展示过程中,都将耗费更多的资源。
注意,不是不用,而是不要滥用。
7、注意控制无谓的用户在线时间
QQ 的升级机制引诱许多人天天挂机,极大的浪费了电力资源,这不是刚改了吗。很多游戏的升级机制也值得探讨,这些机制导致的电能浪费是巨大的。...[
阅读全文]