タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

algorithmとlinuxに関するtakuya-aのブックマーク (3)

  • mimalloc のメモリ管理 - Qiita

    Microsoft の mimalloc は面白い割り切り方で、小さいソースコードで高速なアロケータを実装しています。 確保するメモリブロックのサイズを、 Small (~8KiB), Large (~512KiB), Huge (512KiB~) の3つに分類し、 Small と Large は同じアルゴリズムで管理し、 Huge は OS 任せにして、 Small と Large は同じアルゴリズムをうまく利用しています。 基礎 OSはpage (x86では基 4KiB) ごとにメモリをプロセスに割り当てています。 しかしアプリケーションではずっと小さいメモリブロックが必要になることが多くあります。また、必要になるたびに毎回OSからメモリを割り当ててもらうのはパフォーマンスも悪いです。 mimalloc やその他の malloc 実装 (以降 malloc と呼びます) は OS か

    mimalloc のメモリ管理 - Qiita
  • 【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita

    稿で読解の対象にしているLinuxカーネルの版数は5.1-rc2です。 FAIRクラスについて FAIRクラス(以下、一般クラスと記載)は、Linuxで一番使用頻度が高いプロセスのクラスになります。何も指定せずにプログラムを実行するとクラスで実行されます。コードを読む前に要点を押さえて、その後にコードを見ましょう。まずは要点を箇条書きで述べます。連載では、カーネルの基的な概要を理解しやすくするためにCGROUP及びSMP向けのコードについては触れません。 ・一般クラスのプロセス群のスケジューラは、2.6.23でマージされたCFS(Completely Fair Scheduler)というスケジューラで管理している。それまでのアルゴリズムは経験則(I/Oバウンドプロセスの判定など)に基づくアルゴリズムであったため、完全な公平性とは言えなかった。 ・CFSでは、各プロセスを赤黒木で管

    【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita
    takuya-a
    takuya-a 2019/03/27
    これは助かる
  • 論文|MESH: Compacting Memory Management for C/C++ Applications (PLDI 2019)

    「MESH: Compacting Memory Management for C/C++ Applications」という論文を読んだのでその紹介です。arXiv.org で公開されています。PLDI 2019 で採択されている論文のドラフトだそうです。私は v2 を読みました。ソースコードが GitHub (plasma-umass/Mesh) で公開されています。 免責 読み間違えている可能性があります。正確な情報が欲しい方は必ず論文を読んでください。誤りの指摘や補足、議論などは GitHub Issue や Twitter へお願いします。 読んだ動機 C/C++ でリロケーションせずにコンパクションを行う手法に興味があった。 Speedmetor 2.0 benchmark を走らせた Firefox でメモリ消費量が減ったと報告されており、ブラウザ開発者として気になった。 Ch

    論文|MESH: Compacting Memory Management for C/C++ Applications (PLDI 2019)
    takuya-a
    takuya-a 2019/02/28
    memfd_create()知らなかった。mmap()との合わせ技で、同じ物理アドレスを複数の仮想アドレスにマッピングでき、コンパクション時にそれを利用して仮想アドレスを不変に保つ。
  • 1