3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HALAdvent Calendar 2017

Day 2

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

Posted at

概要

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

前置き

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

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

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

フロー

image.png

実装

こちら

まとめ

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

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?