5.8.3 应用程序问题

到目前为止,我们了解了操作系统能够降低各种类型的设备的能量使用量的方法。但是,还存在着另一种方法:指示程序使用较少的能量,即使这意味着提供低劣的用户体验(低劣的体验也比电池耗干并且屏幕熄灭时没有体验要好)。一般情况下,当电池的电荷低于某个阈值时传递这样的信息,然后由应用程序负责在退化性能以延长电池寿命与维持性能并且冒着用光电池的危险之间作出决定。

这里出现的一个问题是程序怎样退化其性能以节省能量?Flinn和Satyanarayanan(2004)研究了这一问题,他们提供了退化的性能怎样能够节省能量的4个例子。我们现在就看一看这些例子。

在他们的研究中,信息以各种形式呈现给用户。当退化不存在时,呈现的是最优可能的信息。当退化存在时,呈现给用户的信息的保真度(准确度)比它能够达到的保真度要差。我们很快就会看到这样的例子。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

为了测量能量使用量,Flinn和Satyanarayanan发明了一个称为PowerScope的软件工具。PowerScope所做的事情是提供一个程序的电能使用量的概要剖析。为了使用PowerScope,计算机必须通过一个软件控制的数字万用表接通一个外部电源。使用万用表,软件可以读出从电源流进的电流的毫安数,并且因此确定计算机正在消耗的瞬时功率。PowerScope所做的工作是周期性地采样程序计数器和电能使用量并且将这些数据写到一个文件中。当程序终止后,对文件进行分析就可以给出每个过程的能量使用量。这些测量形成了他们的观察结果的基础。他们还利用硬件能量节约测量并且形成了基准线,对照该基准线测量了退化的性能。

测量的第一个程序是一个视频播放器。在未退化模式下,播放器以全分辨率和彩色方式每秒播放30帧。一种退化形式是舍弃彩色信息并且以黑白方式显示视频。另一种退化形式是降低帧速率,这会导致闪烁并且使电影呈现抖动的质量。还有一种退化形式是在两个方向上减少像素数目,或者是通过降低空间分辨率,或者是使显示的图像更小。对这种类型的测量表明节省了大约30%的能量。

第二个程序是一个语音识别器,它对麦克风进行采样以构造波形。该波形可以在笔记本电脑上进行分析,也可以通过无线链路发送到固定计算机上进行分析,这样做节省了CPU消耗的能量但是会为无线电设备而消耗能量。通过使用比较小的词汇量和比较简单的声学模型可以实现退化,这样做的收益大约是35%。

第三个例子是一个通过无线链路获取地图的地图观察器。退化在于或者将地图修剪到比较小的尺度,或者告诉远程服务器省略比较小的道路,从而需要比较少的位来传输。这样获得的收益大约也是35%。

第四个实验是传送JPEG图像到一个Web浏览器。JPEG标准允许各种算法,在图像质量与文件大小之间进行中。这里的收益平均只有9%。总而言之,实验表明通过接受一些质量退化,用户能够在一个给定的电池上运行更长的时间。