¿Qué es el algoritmo de optimización de memoria?

Para resolver un determinado problema, utilizamos estructuras de datos como tablas hash, listas, filtros Bloom, matrices de sufijos, pilas, colas, etc. Utilizamos estas estructuras de datos para reducir la complejidad del tiempo. Por ejemplo, si tiene nombres únicos, desea escribir un algoritmo para encontrar un nombre en particular, si usa una matriz, tomará O (N) y si usa hash set it, tomará O (1) en promedio. Pero para una mejor complejidad del tiempo, debes sacrificarte en el espacio, ya que debes mantener Hash en la memoria. Pero considere qué sucede si la memoria también es una restricción. Entonces, debemos tener un puente nivelado que juegue entre el tiempo y el espacio. Para optimizar la memoria debemos memorizar estructuras de datos eficientes. Dado que nos estamos ocupando de la memoria de nivel de byte, habrá un gran espacio para grandes datos. ¿Qué pasa si podemos direccionar bits en byte para direccionar los datos? Se ahorra una gran cantidad de espacio. . Verifique sobre @Bloom filter Una estructura de datos eficiente en espacio. Considere el navegador web Chrome de un millón de direcciones URL de sitios web maliciosos sobre cómo espaciar de manera eficiente y eficiente en el tiempo la búsqueda de una URL particular es maliciosa o no. ¿Deberíamos crear un hash en memoria que pueda almacenar un millón o mil millones de URL? eso es un desperdicio de espacio y nuestra RAM no puede abordarlos. Entonces, para la optimización de la memoria, debemos usar filtros Bloom que aborden los bits en función de la probabilidad. Utilizamos operadores de desplazamiento para acceder a las posiciones de los bits. Podemos aplicar algoritmos de optimización de memoria similares para buscar discos. Estructura de datos optimizada. Consulte esta página de diagnóstico de @Google Safe Browsing para quora.com. Qué tan rápido sus informes de millones de malware listan el espacio y el tiempo de manera eficiente.