Verwenden von tcmalloc / jemalloc mit benutzerdefiniertem Speicherpool-Manager

8

Ich möchte einen universellen Allzweckzuordner mit hoher Leistung wie jemalloc / tcmalloc mit einem Speicherpool verwenden. Gibt es einen Leitfaden dafür? Ich möchte jemalloc / tcmalloc nicht als Ersatz für malloc verwenden.

Ich habe einen Speicherpool, der libarena verwendet und einen größeren Speicherbereich (2 GB) bearbeitet. Ich möchte Objekte mit festen Größen wie gslice in dieser Arena für zB 1 GB erstellen. (wie der Bonwick-Platten-Allokator) und den Rest des Speichers für die Allzweckzuweisung mit variabler Größe verwenden wollen. Ich möchte, dass jemalloc / tcmalloc diesen Speicherbereich verwendet. Ist das möglich? Irgendwelche Ideen, wie ich weitermachen kann? Wenn es eine alternative Bibliothek gibt, möchte ich auch davon hören.

    
John Knight 05.06.2013, 06:35
quelle

1 Antwort

2

Dies ist eine alte Frage, aber es gibt schließlich eine positive Antwort, zumindest wo jemalloc betroffen ist. Seit jemalloc Version 4.0.0 können Sie mallctl verwenden, um Hooks zu setzen, bei denen Chunked-Zuweisungen Speicher abrufen, indem Sie die Schnittstelle arena.<i>.chunk_hooks verwenden. Diese Hooks sind in der jemalloc-Manpage gut dokumentiert. einschließlich einer Reihe von Querverweisen.

Ich bin mir keiner ähnlichen Schnittstelle in tcmalloc bewusst; Ich benutze es nicht.

Ich habe vor kurzem eine ähnliche Frage beantwortet; dort kann es auch nützliche Informationen geben.

    
dho 10.03.2016 19:08
quelle

Tags und Links