he implementado NedMalloc en nuestra aplicación y estoy muy contenta con los resultados. La contención que he visto antes se había ido, y el asignador fue bastante fácil de conectar, incluso el rendimiento general fue muy bueno, hasta el punto en que la sobrecarga de las asignaciones de memoria está fuera de servicio ahora es casi inmesurable.
No probé el ptmalloc, ya que no encontré una versión de Windows preparada y perdí la motivación una vez que NedMalloc funcionó bien para mí.
Además de los dos mencionados, creo que también podría ser interesante probar TCMalloc - tiene algunas características que suenan mejor que NedMalloc en teoría (como muy poco sobrecarga para pequeñas asignaciones, en comparación con 4 B encabezado utilizado por NedMalloc) Sin embargo, como no parece tener el puerto de Windows listo, también podría ser difícil.
Después de unas semanas de uso de NedMalloc que se vio obligado a abandonarla, porque su espacio de arriba ha demostrado ser demasiado alto para nosotros. Lo que nos impactó en particular fue que NedMalloc parece estar recuperando la memoria de que ya no está acostumbrado al sistema operativo de mala manera, manteniendo la mayoría de ellos aún comprometidos. Por ahora lo he reemplazado con JEMalloc, que parece no ser tan rápido (todavía es rápido, pero no tan rápido como lo fue NedMalloc), pero es muy robusto de esta manera y su escalabilidad también es muy buena.
Y después de unos meses de usar JEMalloc he cambiado a TCMalloc.Tomó más esfuerzo adaptarlo para Windows en comparación con los otros, pero sus resultados (tanto de rendimiento como de fragmentación) parecen ser los mejores para nosotros de lo que he probado hasta ahora.
Por cierto ¿ha evaluado el asignador de Hoard (http://www.hoard.org)? –
No lo hice, porque su licencia GPL no es aceptable en este caso (y su licencia comercial parece demasiado costosa para nosotros). – Suma
Dado que es importante para mí, ¿podría explicarme por qué la GPL no es aceptable? ¿Qué lo hace inaceptable en tu caso? –