¿Cuáles son las mejores prácticas de programación que son fáciles de seguir, pero que tienen importancia en el uso de RAM?

No hay una lista exhaustiva que pueda proporcionarle. El tema es amplio. Pero aquí hay algunos pensamientos a considerar.

RAM es una forma más antigua de ver la memoria. Estamos en la era de la memoria virtual, el aumento de la memoria y el compromiso excesivo. Por lo tanto, tratar de pensar solo en la RAM es una forma novata de mirar la plataforma o ser miope.

Hay nuevas empresas de almacenamiento [y algunos grandes pesos pesados] que trabajan en el almacenamiento flash y el disco RAM como dispositivos de almacenamiento.

La computadora portátil que tengo ahora tiene 16 GB de memoria. La máquina que tengo en mi lugar de trabajo es de 64 GB. Y la RAM que una máquina virtual puede soportar hoy es de 1 TB [esx, por ejemplo].

Ahora, ¿por qué es importante saber esto? Muchos de los libros de texto clásicos utilizados en las universidades asiáticas nos enseñan la optimización y los pensamientos de la vieja escuela. Si bien el costo amortizado es importante, lo que debe recordar es

– Primero construya su sistema / software. Agregue la capacidad de medir su valor y rendimiento y luego optimice solo si puede generar el valor del sistema.

– La mayoría de las aplicaciones no se preocupan por la RAM o su huella. El foco más alto debería estar en la mantenibilidad. que a su vez depende de la legibilidad y el código elegante.

– Aprenda de su experiencia y aplique el aprendizaje de forma incremental. El uso de memoria de tiempo de ejecución de sus aplicaciones puede no ser un problema.

Bien, ahora que sabe que la “optimización” es solo una parte del proceso, así es como puede ahorrar en memoria.

– Intente estimar cómo el consumo de memoria en tiempo de ejecución afectará el rendimiento y el valor del algoritmo / sistema.
– Una vez que lo estimes. Escriba su código de manera que pueda medir el rendimiento, el valor y el consumo de recursos.
– Para lenguajes como C, C ++ tiene un diseño y un enfoque equilibrado en la asignación y desasignación de memoria.
– Las operaciones bit a veces son a veces más rápidas. y tomar menos memoria, pero podría ser propenso a errores en casos de esquina.
– Los tipos in situ son más rápidos y requieren menos recursos. Sin embargo, son difíciles de mantener si se complican.
– para idiomas como java, a veces las personas invocan gc específicamente para liberar memoria. Utilice depuradores jvm y analice las pérdidas de memoria antes.
– los montones son lentos, pero pueden reclamarse fácilmente y no reclamarse.
– La vinculación estática es más adecuada en aplicaciones integradas.
– use lecturas y escrituras almacenadas en el búfer para las operaciones de lectura y escritura.
– Usar generadores en Python.

Esa es una pregunta bastante genérica … depende mucho del idioma y la aplicación. En general, solo diría que libere la memoria que usa tan pronto como haya terminado. Si tiene que mantener una porción grande que se usa con poca frecuencia, escríbala en el disco y recójala cuando la necesite. Intente utilizar la base de datos todo lo que pueda y devuelva justo lo que necesita en el estado más cercano a lo que va a querer (previamente ordenado, filtrado, agrupado, etc.).

Muchas veces hay una compensación entre la legibilidad, la capacidad de mantenimiento y el uso de la memoria, por ejemplo, almacenar una matriz de objetos puede requerir más memoria que una matriz de solo las variables que necesita.

Utilice el tipo de variable más pequeño necesario para lo que sea que esté rastreando. Agrupe booleanos en un byte, use enumeraciones, cadenas de longitud variable en lugar de ancho fijo que son más rápidas. El idioma elegido puede hacer algo de esto automáticamente, o puede que tenga que especificar todo manualmente.

Mantenga las cosas SECAS (No se repita). Revise su código periódicamente para ver si puede hacerlo más pequeño. Si puede obtener una revisión por pares que puede ser útil. Puedes aprender mucho de la forma en que otras personas hacen cosas que pueden no ser evidentes desde una sola perspectiva.

#Utilice muchos bucles, matrices y if statemants.
#use else if declaraciones si puedes (especialmente con programas que usan escenas)

Así es como se hace un código eficiente.
Código eficiente = menos líneas con más logros y con un mejor rendimiento.

More Interesting

¿Cuándo deberían los equipos de desarrollo comenzar a invertir en velocidad?

¿Por qué el trabajo de ingeniero de software tiene tanta demanda?

¿Realmente necesito experiencia en desarrollo para solicitar trabajos de QA en Google?

¿Qué es fácil de aprender, pruebas de software o desarrollo de software?

¿En qué se diferencia la creación de prototipos del desarrollo ágil de software?

¿Cuáles son algunos errores notables o dificultades en los marcos e idiomas ampliamente adoptados?

¿Cuáles son algunos productos de software o web que se consideraron tan buenos que se detuvo todo desarrollo futuro, por temor a que las características adicionales degraden el producto?

¿Qué idioma se utiliza para construir la mayoría de los principales sitios web como Google, Facebook y Twitter?

Soy un ingeniero eléctrico. ¿Cuáles son los programas de computadora que debo aprender para poder obtener un trabajo decente en la industria del software?

¿Cuál es la importancia del software en el comercio?

Si un grupo de desarrolladores dice que puede completar un proyecto en 8 semanas, ¿cuál es el número de semanas más realista que debo esperar?

¿Cuál es la diferencia entre un servidor HTTP simple y algo como Apache o NGINX?

¿Es posible crear un script para Photoshop que interactúe con otra pieza de software que haya programado?

¿Cómo convertir una pasantía en un trabajo a tiempo completo en empresas de software? ¿Hay algún truco?

En las empresas tecnológicas, ¿la asignación cerrada y la clasificación de la pila son malevolencia o incompetencia?