¿Cómo es posible usar contenedores C++ STL con jemalloc (o cualquier otra implementación malloc
)?C++ STL con jemalloc
¿Es tan simple como incluir jemalloc/jemalloc.h
? ¿O debería escribir un asignador para ellos?
Editar: La aplicación en la que estoy trabajando asigna y libera objetos relativamente pequeños a lo largo de su vida útil. Quiero reemplazar el asignador predeterminado, porque los puntos de referencia mostraron que la aplicación no escala más allá de 2 núcleos. El perfil mostró que estaba esperando la asignación de memoria, eso es lo que causó los problemas de escala. Según tengo entendido, jemalloc
me ayudará con eso.
Me gustaría ver una solución, que sea neutral en cuanto a la plataforma, ya que la aplicación debe funcionar tanto en Linux como en Windows. (La vinculación con una implementación diferente es fácil en Linux, pero es muy difícil en Windows, hasta donde yo sé).
He actualizado mi pregunta para responder a sus de. ¿Qué tipo de problemas hay con la sustitución de 'nuevo'? – KovBal
Si solo está tratando de reemplazar 'new' con los habituales chanchullos de C++, puede hacerlo. Es cuando las personas intentan reemplazar 'malloc' en todo un programa que se pone realmente peludo. –
Esto es exactamente lo que quiero hacer: reemplazar 'malloc' en todo el programa. Pero no quiero escribir mi propia implementación; Solo quiero usar otra (bien probada). – KovBal