microsoft / microsoft/mimalloc
"Pointer compression/truncation" and huge pages
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C
- Sterne
- 13.4k
- Forks
- 1.2k
- Ø Merge
- 4 T. 45 Min.
- Gemergte PRs (30 T.)
- 13
Beschreibung
Suppose,
- we ask mimalloc to use 1GB pages.
- we make a heap
- we make zillions mallocs/frees over the same heap as in step 2
- assume we do not realloc, re-calloc, move the heap memory
are there any guarantees that every pointer will share the same value in bits above the last physical bit usually 38 (zero based) because the memory is coming off the same page?
If so, one can play memory tricks like save the base address somewhere and cut 64-bit pointers down to 32-bits. Which, for tree like data structures could be a handy, cheap way to cut memory for pointers in half. Yes, there's pointer and/or bit games to play, but it may be worth playing.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Es werden keine Dateien, Tests oder Einstiegspunkte genannt. Beginne damit, das Verhalten von mimalloc bei der Zuweisung von 1GB-Seiten und die Garantien zu überprüfen, die es für Zeigeradressen bei wiederholten Zuweisungen und Freigaben gibt; abgeschlossen ist die Untersuchung, wenn dokumentiert ist, ob die vorgeschlagene Zeigertrunkierung garantiert oder nicht unterstützt ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- c
- Bereich
- operating-systems, performance
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100