Mobile 编写“节能”代码

Mobile 编写“节能”代码,mobile,computer-science,Mobile,Computer Science,可能重复: Adobe在谷歌I/O大会上宣布,它的下一个版本Flash 10.1将更加高效地应用于功耗重要的设备 这让我思考:如何编写功耗更低的代码?关于这个话题有什么有用的资源吗 我的猜测是,这是以下因素的组合: 降低应用程序的复杂性 编写快速执行的高效代码可能是因为处理时间=功耗 鉴于这可能是针对嵌入式设备,我想冒昧地说,最好的省电方法是不开机,并尽量减少设备开机的时间。这意味着让处理器进入睡眠状态,只有在需要完成工作时才醒来。我能想到的最好的方法是使应用程序完全由中断驱动 鉴于这可能是针

可能重复:

Adobe在谷歌I/O大会上宣布,它的下一个版本Flash 10.1将更加高效地应用于功耗重要的设备

这让我思考:如何编写功耗更低的代码?关于这个话题有什么有用的资源吗

我的猜测是,这是以下因素的组合:

降低应用程序的复杂性 编写快速执行的高效代码可能是因为处理时间=功耗
鉴于这可能是针对嵌入式设备,我想冒昧地说,最好的省电方法是不开机,并尽量减少设备开机的时间。这意味着让处理器进入睡眠状态,只有在需要完成工作时才醒来。我能想到的最好的方法是使应用程序完全由中断驱动

鉴于这可能是针对嵌入式设备的,我想冒昧地说,省电的最佳方法是不开机,并尽量减少设备开机的时间。这意味着让处理器进入睡眠状态,只有在需要完成工作时才醒来。我能想到的最好的方法是使应用程序完全由中断驱动

除了凯文的建议之外,我认为尽量减少网络交流会有所帮助。这将包括批量获取数据,以便有更多的时间用于睡眠。

除了凯文的建议外,我认为尽量减少互联网通信将有所帮助。这将包括批量获取数据,以便有更多的时间用于睡眠。

还要记住,访问驱动器和wifi等设备会增加功耗。尽量减少对此类设备的访问。

还要记住,访问驱动器和wifi等设备会增加功耗。尽量减少对这类设备的访问。

实际上有一种更大的方法可以降低功耗,这是以前没有提到过的

让我们用一台计算机把所有函数分成两个基本组。硬件实现的和软件实现的

如果一个功能是在硬件中实现的,也就是说,有一个电路,您可以将输入放在一组导线上,而输出从另一组导线出来,那么功耗等于门总数中消耗的功耗。时钟滴答滴答地响了一次,消耗了一点电能,总线热了,输出消耗了一点电能

如果一个功能是在软件中实现的,即没有用于实现该功能的单个电路,那么它需要使用多个电路、多个时钟周期,并且通常需要多次调用内存。请记住,用于处理器寄存器的SRAM是由D触发器构成的,只要在使用中,这些触发器就会不断消耗电源

作为一个简单的例子,让我们看看H.264编码器。H.264是QuickTime视频使用的视频编码。它还用于MPEG视频、许多AVI,Skype也使用它。因为这是很常见的,有人坐下来,找到了一种在硬件中制作芯片的方法,你把编码文件的一端输入芯片,红色、绿色和蓝色的视频通道从另一端输出

在这个芯片存在之前,在Flash 10.1之前,你必须用软件来解码。解码它需要很多正弦和余弦。正弦和余弦是超越函数,也就是说,如果没有无穷级数,就无法在四个基本数学运算中写出它们。这意味着,通过循环的每次迭代添加、乘法和除法,您所能做的最好的事情是运行循环32-64次,逐渐变得更精确。循环的每次迭代也会将值移入和移出寄存器,正如您所记得的那样,这些寄存器使用电源

Flash用于通过软件对视频进行数学解码来解码视频。现在它只是说把视频传给H.264芯片。当然,它还必须检查该芯片是否存在,如果不存在,则使用软件。这意味着Flash作为一个整体,现在更大了。但在任何一个像HTC手机这样带有H.264芯片的系统中,它现在都使用更少的电力

将相同的逻辑应用于:

软件中的乘法和乘法 软件中的无穷级数模 软件中比较减法和检查是否为负数 在软件中绘制正弦/余弦/污秽。很容易传递到视频卡
实际上,有一种更大的方法可以降低功耗,但这一点尚未涉及

让我们用一台计算机把所有函数分成两个基本组。硬件实现的和软件实现的

如果一个功能是在硬件中实现的,也就是说,有一个电路,您可以将输入放在一组导线上,而输出从另一组导线出来,那么功耗等于门总数中消耗的功耗。时钟滴答滴答地响了一次,消耗了一点电和电 总线变热,输出消耗少量功率

如果一个功能是在软件中实现的,即没有用于实现该功能的单个电路,那么它需要使用多个电路、多个时钟周期,并且通常需要多次调用内存。请记住,用于处理器寄存器的SRAM是由D触发器构成的,只要在使用中,这些触发器就会不断消耗电源

作为一个简单的例子,让我们看看H.264编码器。H.264是QuickTime视频使用的视频编码。它还用于MPEG视频、许多AVI,Skype也使用它。因为这是很常见的,有人坐下来,找到了一种在硬件中制作芯片的方法,你把编码文件的一端输入芯片,红色、绿色和蓝色的视频通道从另一端输出

在这个芯片存在之前,在Flash 10.1之前,你必须用软件来解码。解码它需要很多正弦和余弦。正弦和余弦是超越函数,也就是说,如果没有无穷级数,就无法在四个基本数学运算中写出它们。这意味着,通过循环的每次迭代添加、乘法和除法,您所能做的最好的事情是运行循环32-64次,逐渐变得更精确。循环的每次迭代也会将值移入和移出寄存器,正如您所记得的那样,这些寄存器使用电源

Flash用于通过软件对视频进行数学解码来解码视频。现在它只是说把视频传给H.264芯片。当然,它还必须检查该芯片是否存在,如果不存在,则使用软件。这意味着Flash作为一个整体,现在更大了。但在任何一个像HTC手机这样带有H.264芯片的系统中,它现在都使用更少的电力

将相同的逻辑应用于:

软件中的乘法和乘法 软件中的无穷级数模 软件中比较减法和检查是否为负数 在软件中绘制正弦/余弦/污秽。很容易传递到视频卡
@Cory的可能副本这确实是一个副本。这个帖子可以删除吗?确实可以删除,但我没有这个名声。我将投票结束。可能重复@Cory这确实是一个重复。这个帖子可以删除吗?确实可以删除,但我没有这个名声。我将通过投票来帮助结束。