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.
- Dado el número cada vez mayor de utilidades (Puppet, Chef, Redis, MemCache, Selenium, etc.) agregadas a la pila de aplicaciones principales (HTML, CSS, JS, DB e idiomas de back-end de elección), qué es una base pila 'completa' para dominar para el desarrollo general de aplicaciones de nivel de producción
- Cómo mostrar en mi currículum que soy un experimentado de 25 años, en lugar de un normal de más de 30 años
- ¿Cómo compilo el código Objective-C en Windows?
- Cómo generar una curva de entropía para señal en Matlab
- ¿La metodología Agile es solo el modelo en cascada pero en ciclos de lanzamiento más cortos?
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.