`
1025250620
  • 浏览: 229833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代码节能(转)

 
阅读更多
    看到这个题目的时候,读者可能会诧异:代码也有节能与不节能之分?我们说,是的,本质上,程序所调度的是硬件资源,不合理的硬件调度,会使得设备调度效率不高,从而产生更高的能耗。 实际上,随着移动终端的流行,功耗比已然成为比较处理器的重要参数。在已经上市,可能大放光彩的超级本上(Ultrabook),功耗更成为重要的考虑因素。实际上英特尔已经大量考虑了硬件层面的功耗优化,微软将在Windows8中增强功耗优化,第三方软件也将不可避免的影响到功耗,而实际上ill behaving的软件或服务甚至可能会使得所有硬件层和系统层所作的功耗优化功亏一篑。

当前来讲,对于同质化的软件,其差异性在于性能,功能,用户体验等,在不久的将来,功耗可能成为重要特性之一。想象一下,在超级本普及之后,一个软件能支撑十个小时,而另外一个只能七个小时,那么用户尤其是没有外接电源的情况下必然更倾向于前者。

闲话短续,那么什么样的软件是节能的软件呢?通常可以从下面两个工作状态来看:

Idle workloads:

1.     处理器和平台能够长时间处于idle状态,避免软件的高频执行,比如统计等;

2.     应当尽可能的将任务联合,协调和分批处理;避免频繁的执行程序,最小化后台服务;

3.     软件不能够影响平台硬件组件进入到深一层的power state(往往是因为太多的中断所造成)。

4.     当系统idle的时候,使硬盘降速(spin down)。避免周期性的硬盘访问注册。

Active workload:

1.     提高计算的有效性和CPU的使用效率,目的是让系统进入到更长时间的idle状态;

2.     减少处理器的C-state切换的次数,频繁的C-state切换会导致能量的损耗;

3.     对于多核架构,最大化多核程序执行的并发性,这样可以是package 层次的资源和platform层次的资源得到更有效的管理;

4.     减少程序的执行频率,对于有特定cpu使用率的任务来说,让它运行更长的时间,更低的频率,更节能。

5.     程序中如果提高了timer分辨率对功耗有很大的影响,尽量使用大的timer的时间间隔,如果必须使用小的timer间隔,当任务完成之后,将其重置为大的值。



实际功耗分析中,package state, core state, c-state等都将是重要的考虑参数。从上面这些点中可以看到,所谓功耗优化,本质上无非是从平台的角度考虑性能优化。功耗的问题,不仅仅是CPU性能问题,而降低CPU的利用率则是第一步,这可以使用英特尔的Vtune工具。

(下载地址:http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/)

对于平台的功耗优化来说,还要考虑如何提高程序的并发性,如何减少外设(硬盘等)的电源的损耗,而这都是与软件的运行特性相关的。我们将在未来的博客中进一步分析如何才能写更节能的程序。
分享到:
评论

相关推荐

    2023 数维杯 B 题(节能列车优化)

    【标题】2023 数维杯 B 题(节能列车优化)是一场编程竞赛中的挑战,旨在考察参赛者对算法设计、优化以及节能策略的理解。这道题目可能要求参赛者编写程序,以模拟并优化列车运行过程中的能耗,从而达到节能减排的...

    ASP中国节能环保科技网站(源代码+论文).zip

    "ASP中国节能环保科技网站(源代码+论文)"这个标题表明这是一个基于ASP技术构建的网站项目,专注于中国的节能环保科技领域。这个项目不仅包括了网站的源代码,还附带了一篇相关的学术论文,可能详细阐述了网站的设计...

    节能报告模板(按照固定资产投资项目节能审查系列工作指南2018年本编写).docx

    此外,报告将明确项目地点、所属行业、项目性质(新建、改建或扩建)、计划投产时间、总投资、预计的增加值、投资管理类别(审批、核准或备案)以及项目代码。 **能源消耗与产出** 报告中将详细列出项目的主要耗能...

    世界节能减排专利精粹(十八).pdf

    标题《世界节能减排专利精粹(十八)》所指的知识点聚焦于节能减排这一全球性议题。节能减排在当今社会中扮演着极其重要的角色,尤其是在工业生产、能源利用、日常生活和环境保护等方面。该标题提示我们,文档中包含了...

    LED节能灯制作手册.pdf

    由于提供的【部分内容】中未包含有效的具体文字信息,我将直接根据【标题】和【描述】中提到的LED节能灯制作手册相关知识点进行阐述。 首先,手册的标题“LED节能灯制作手册.pdf”明确指出,这是一份关于LED节能灯...

    chunghop万能遥控器Q-001说明书及代码表

    此外,Q-001还具备节能模式、睡眠模式等人性化设置,为用户提供舒适且省电的使用体验。 二、Q-001遥控器的基本操作 1. 开机/关机:长按电源键,可实现空调的开启或关闭。 2. 温度调节:上/下箭头键用于调整设定...

    LED旋转灯(电路图,源代码)

    LED由于高效、节能、寿命长等优点,在电子设备中广泛应用,包括照明、显示屏等领域。而“指针”在此情境下,可能是指模拟钟表中指示时间的可移动部分,但在这个LED旋转灯项目中,指针可能是由LED灯光模拟出来的。 ...

    使用模型预测控制的差速轮机器人节能路径规划matlab代码.zip

    本文将详细探讨如何使用MATLAB进行基于模型预测控制的差速轮机器人节能路径规划。MATLAB是一款强大的数学计算软件,提供了丰富的工具箱支持控制系统设计和仿真,其中包括用于MPC的“Control System Toolbox”和...

    利尔达CC430代码

    在源代码中,可以看到各种节能策略,比如休眠模式、看门狗定时器和低功耗定时器的使用,以延长电池寿命。开发者需要深入理解这些特性,才能充分利用CC430的优势。 总的来说,利尔达CC430的源代码是一个丰富的学习...

    SPI/I2C转UART代码

    SPI/I2C转UART代码是将微控制器与外部设备之间的通信协议进行转换的一种技术。在电子工程中,SPI(Serial Peripheral Interface)和I2C(Inter-Integrated Circuit)是常见的串行通信接口,而UART(Universal ...

    2018年TI杯A题代码

    7. **节能模式**:为了延长电池寿命或提高能效,代码可能使用低功耗模式,如STOP或STANDBY。 8. **调试技巧**:代码中可能包含了调试信息和断点,方便团队在开发过程中进行问题定位。 9. **性能优化**:针对特定的...

    139个单片机源代码程序

    通过这些代码,开发者可以学习到430单片机的节能模式、高效计算能力和灵活的外设接口使用方法。 在这些源代码中,你可能会发现新颖的设计思路和优化技巧,例如使用查表法提高计算效率,利用中断优化实时性,或者...

    MSP430 C 代码

    C代码中会涉及如何在运行中切换工作模式,如活动模式、低功耗模式等,以实现节能。 7. **中断处理**:中断是实时系统中的重要组成部分。C代码将演示如何设置中断服务函数、处理中断事件以及优化中断响应时间。 8. ...

    BMA g sensor 代码

    5. **电源管理**:博世的传感器往往有节能特性,开发代码会包括管理传感器功耗的函数,比如休眠和唤醒模式的切换。 6. **错误处理**:当通信错误或传感器故障发生时,错误处理代码会进行诊断,并可能采取恢复措施。...

    音乐播放器verilog代码

    7. **电源管理**:音乐播放器可能需要节能设计,因此电源管理模块负责监控功耗并优化系统性能。 8. **时钟管理**:时钟是数字系统的心跳,时钟管理模块确保所有组件在正确的时序下运行。 9. **串行接口**:可能...

    LTC2600驱动代码

    2. **低功耗**:在电源电流小于1μA时,LTC2600可以在待机模式下工作,适合电池供电或节能系统。 3. **快速转换时间**:LTC2600的转换速率快,可实现高速采样和保持功能。 4. **SPI兼容接口**:通过SPI接口与微控制...

    ADS1220驱动代码

    2. **低功耗**:运行时功耗低,有利于电池供电或节能设计。 3. **高速采样**:支持较高的采样速率,满足实时数据采集需求。 4. **内置PGA(可编程增益放大器)**:可根据信号大小调整增益,扩大测量范围。 5. **SPI...

    新华龙单片机410源代码

    5. 低功耗模式:支持多种节能模式,适用于电池供电或能源有限的场合。 6. 完善的模拟电路:内置A/D和D/A转换器,便于信号处理。 学习和研究这些源代码,开发者可以: 1. 学习C8051F41x的寄存器配置和操作,理解硬件...

    技术领域分类及代码.pdf

    能源技术包括能源问题一般理论,地区性能源综合开发与利用,石油、天然气、煤炭、可再生能源的开发与利用,新能源(太阳能、生物能、核能、海洋能等)的研制开发与利用,节能新技术、能源转换和储存新技术等活动。...

    MSP430代码集锦

    - **节能模式切换**:根据需要进入不同电源模式的示例。 6. **移植性** 这些代码示例的可移植性强,开发者可以根据自己的硬件配置和需求,轻松地将代码应用到不同型号的MSP430微控制器上,大大节省开发时间。 7....

Global site tag (gtag.js) - Google Analytics