Help us understand the problem. What is going on with this article?

アロケータを作ってみた話

More than 3 years have passed since last update.

概要

このスライドを見ている時に思いついた。
こんなアロケータあってもいいんじゃない?って言う提案。(ガベコレとかマルチスレッドの話はしません)

前置き

メモリプール・スモールオブジェクトアロケータ・TLSFなど、速度と割当の正確性がトレードオフになっているメモリアロケータは数多く存在します。

その一方、寿命の制御を手放すことで高速且つ正確な割当を実現しているアロケータもあります。
これらのいいとこ取りを出来ないでしょうか。

という事で、高速で割り当てる層と正確に割り当てる層の二層で構築されるアロケータを組んでみました。

フロー

image.png

実装

こちら

まとめ

今回実装した二層アロケータは、速度を優先としたFrontと正確性を優先したBackのと言った実装でした。
今回はFrontとBackの二度割当をしていますが、Backを別スレッドなどで行うことでさらなる高速性を得られそうです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away