¿Existen técnicas para optimizar el código con el fin de garantizar la menor potencia es consumption.Architecture ARM.language es C¿Podemos optimizar el código para reducir el consumo de energía?
Respuesta
Desde el sitio de referencia técnica ARM:
Las características del procesador ARM11 MPCore que mejoran la eficiencia energética incluyen:
- rama exacta y la predicción de retorno sub-rutina, la reducción del número de recuperación de instrucción incorrecta y operaciones de decodificación
- uso de cachés direccionados físicamente, lo que reduce la número de caché rubores y las recargas, el ahorro de energía en el sistema
- el uso de MicroTLBs reduce la potencia consumida en las búsquedas de traducción y de protección de cada ciclo
- los cachés utilizan la información de acceso secuencial para reducir el número de accesos a la etiqueta RAM y a RAM de datos no deseados.
En el ARM11 MPCore procesador extensa también se hace uso de gated relojes y puertas para desactivar entradas a bloques funcionales no utilizados. Solo la lógica que se usa activamente para realizar un cálculo de consume energía dinámica.
En base a esta información, diría que el procesador hace mucho trabajo para ahorrar energía. Cualquier desperdicio de energía vendría de código mal escrito que hace más procesamiento de lo necesario, que de todos modos no querría. Si está buscando ahorrar energía, el diseño general de su aplicación tendrá más efecto. El acceso a la red, el procesamiento de pantallas y otras operaciones de gran consumo de energía serán más preocupantes para el consumo de energía.
Optimización de código para utilizar menos energía es, efectivamente, simplemente optimizar el código. Independientemente de si sus motivos son monetarios, sociales, políticos o similares, menos ciclos de CPU = menos energía utilizada. Lo que estoy tratando de decir es que creo que probablemente pueda reemplazar el "consumo de energía" por el "tiempo de ejecución", ya que, en esencia, serían directamente proporcionales y, por lo tanto, podría tener más éxito cuando no "asuste" a la gente con un pregunta relacionada con el poder Sin embargo, puedo estar corregido :)
cuidado para justificar el -1? – Jeriko
No lo hice, pero mi computadora portátil usa menos energía si la CPU está funcionando más despacio, por lo que el tiempo de ejecución es inversamente proporcional al consumo de energía. –
No se puede reclamar que el tiempo de ejecución sea inversamente proporcional al consumo de energía. Eso implica que podría escribir un guión de 10 años y esperar que consuma un solo joule de energía. Admitiré la ambigüedad anterior- ¿Qué tal "el uso de energía es proporcional al número de operaciones de la CPU, teniendo en cuenta que la potencia requerida por operación es inversa a la velocidad sucesiva a la que se ejecutan dichas operaciones (junto con un millón otros factores que no se mencionaron porque estaba tratando de escribir una regla general y no una tautología requerida para defenderse ante un tribunal) ". : P – Jeriko
Si el procesador está sintonizado para usar menos energía cuando necesita menos ciclos, la solución es hacer que el código funcione más eficientemente. De lo contrario, no hay mucho que pueda hacer a menos que el sistema operativo exponga algún tipo de funcionalidad de administración de energía.
Mantenga IO al mínimo.
En algunos procesadores ARM es posible reducir el consumo de energía poniendo el regulador de voltaje en modo de espera.
Sí. Use un profiler y vea qué rutinas usan la mayor parte de la CPU. En ARM puede usar algunos conectores JTAG, si están disponibles (utilicé Lauterbach para depurar y para crear perfiles). El principal problema generalmente es poner su procesador, cuando está inactivo, en un estado de bajo consumo (sueño profundo). Si no puede reducir el porcentaje de CPU utilizado por mucho (por ejemplo, del 80% al 50%), no hará una gran diferencia.Según los sistemas operativos que esté ejecutando, las opciones pueden variar.
y podría agregar: no mantenga los periféricos en un estado "abierto" a menos que realmente los esté usando (por ejemplo, mantener el bluetooth/wi-fi abierto reduce * mucho * la duración de la batería en el caso de dispositivos móviles. – INS
Si no está ejecutando Windows XP + o una versión más nueva de Linux, podría ejecutar un hilo de fondo que no hace más que HLT.
Así es como programas como CPUIdle reducen el consumo de energía/calor.
This shouldn No será necesario para los sistemas operativos más nuevos. –
@Axel: Sí, mencioné que ... –
La edición de julio de 2010 de Comunicaciones del ACM tiene un artículo sobre los algoritmos de eficiencia energética que pueden interesarle. No lo he leído todavía, así que no puedo impartir nada de su sabiduría.
En general, estaba muy decepcionado con dicho artículo, por desgracia. –
Ahora probablemente nunca lo leeré. –
Trate de permanecer en la memoria de los chips (caché) para bucles inactivos, mantenga las E/S al mínimo, mantenga el bit volteando al mínimo en los buses. La memoria NV como proms y flash consumen más energía para almacenar ceros que unos (por eso se borran a unos, en realidad es un cero, pero los transitorios invierten el bit antes de verlo, ceros almacenados como unos, almacenados como ceros, esta es también la razón por la que se degradan a unos cuando fallan), no sé sobre memorias volátiles, dram usa la mitad de transistores que sram, pero tiene que actualizarse.
Para todo esto es importante, aunque debe comenzar con un sistema de menor potencia, ya que lo anterior puede no ser notable. no use nada de Intel, por ejemplo.
- 1. Posibilidades para reducir el consumo de energía con aplicaciones cocos2d
- 2. Perfilado Consumo de energía en ARM para el programa C
- 3. Android App consumo de energía
- 4. Cómo reducir el consumo de memoria phantomjs?
- 5. ¿Alguien conoce algún compilador que optimice el código de consumo de energía para dispositivos integrados?
- 6. Calcular el consumo de energía del sensor Android
- 7. ¿Hay alguna forma de reducir la precisión scipy/numpy para reducir el consumo de memoria?
- 8. Optimizar el código Haskell
- 9. Cómo reducir el consumo de memoria C++ por defecto?
- 10. iPhone 4 perfil consumo de energía (con instrumentos)
- 11. MVC Reducir el código repetitivo
- 12. Cómo optimizar este código
- 13. Optimizar la pintura de TWebBrowser para reducir el uso total de la CPU
- 14. Cómo optimizar el código Python (de ThinkPython, el ejercicio 10.10)
- 15. escape en C# para el consumo Javascript
- 16. Python: ¿Cómo se puede encontrar el consumo de CPU para una pieza de código?
- 17. ¿Cómo puedo reducir el consumo de memoria de un proceso Linux mínimo
- 18. Mejor aplicación para reducir el código JavaScript y el código CSS
- 19. Cómo obtener el uso de energía en una Mac
- 20. ¿El operador de energía en Java?
- 21. Optimizar código BeautifulSoup (Python)
- 22. ¿Qué línea de código podría usar en C++ para desactivar el ahorro de energía?
- 23. Apio - minimiza el consumo de memoria
- 24. Uso de C# para mostrar el punto de energía
- 25. ¿Reducir el código de manejo de error duplicado en C#?
- 26. Cómo reducir el uso de memoria del código python enhebrado?
- 27. ¿Cómo detectar el estado conectado de energía?
- 28. ¿Cómo eliminar el bucle en el cálculo de la energía?
- 29. Optimizar el método equals()
- 30. Estrategias para manejar el consumo de memoria en PHP5?
Utilice el operador de optimización '//'. :) – SLaks
Los ciclos no utilizados por su programa se seguirán utilizando como procesos inactivos. Supongo que si tu CPU está sintonizada para darle menos energía cuando necesita menos ciclos, entonces solo necesitas hacer que tu código sea más rápido. De lo contrario, tu única opción es '#include" gogreen.h "'. – corsiKa
@Slaks que la optimización solo está disponible para C++ (y más reciente que las variantes ANSI C), por lo que es mejor usar/**/operator :-p – fortran