Adobe在谷歌I / O上宣布,它的下一版本的Flash 10.1对功耗较高的设备更有效。
这让我想到:你如何编写使用更少功率的代码?关于这个主题是否有任何有用的资源?
我的猜测是它是:
的组合答案 0 :(得分:2)
看起来好像这可能是针对嵌入式设备的,我敢说,节省电量的最佳方法是不打开,并尽量减少设备的使用时间。这意味着只有在需要完成工作时才让处理器进入睡眠状态并唤醒。我能想到的最好的方法就是让应用程序完全由中断驱动。
答案 1 :(得分:2)
实际上有一种更大的方法可以降低未被触及的功耗。
我们拿一台电脑将所有功能分成两个基本组。那些用硬件实现的和用软件实现的那些。
如果某个功能是在硬件中实现的(也就是说,有一个电路可以将输入放在一组导线上,而输出输出另一组导线)则功耗等于所消耗的功率。门的总数。时钟滴答一次(耗尽一点电量),总线变热输出(耗电少量)。
如果某个功能是用软件实现的(即没有用于实现该功能的单个电路),那么它需要使用多个电路,多个时钟周期以及经常大量的存储器调用。请记住,SRAM(用于处理器寄存器)由D触发器组成,只要它们在使用中,它们就会不断耗电。
作为一个简单的例子,我们来看看H.264编码器。 H.264是QuickTime视频使用的视频编码。它也用于MPEG视频,许多AVI,并由Skype使用。因为有人常常坐下来找到一种方法来制作一个硬件芯片,你可以在一端为编码文件提供信息,红色,绿色和蓝色视频通道就会出现在另一端。
在此芯片存在之前(以及Flash 10.1之前),您必须使用软件对其进行解码。解码它涉及许多正弦和余弦。正弦和余弦是超越函数(也就是说 - 在没有无限级数的情况下,没有办法在四个基本的数学运算中写出它们)。这意味着你可以做到最好的运行循环32-64次逐渐更准确,循环的每次迭代添加,乘法和除法。循环的每次迭代也会将值移入和移出寄存器(您可以回忆起使用功率)。
Flash用于通过在软件中对其进行数学解码来解码视频。现在它只是说“将视频传递给H.264芯片”。当然它还必须检查该芯片的存在并使用软件(如果它不存在)。这意味着Flash整体上现在更大了。但是任何一个带有H.264芯片的系统(如HTC手机),它现在使用的功率更低。
对以下内容应用相同的逻辑:
答案 2 :(得分:1)
除了凯文的建议,我认为最小化互联网通信会有所帮助。这将包括批量获取数据,因此可以花更多的时间睡着。
答案 3 :(得分:1)
另请注意,访问驱动器和wifi等设备会增加功耗。尽量减少对此类设备的访问。