タグ

memoryに関するnfunatoのブックマーク (37)

  • 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
  • 論文|snmalloc: A Message Passing Allocator (ISMM 2019)

    「snmalloc: A Message Passing Allocator」という論文を読んだのでその紹介です。論文は ISMM (International Symposium on Memory Management) 2019 に採択されており、論文とソースコードは GitHub (microsoft/snmalloc) で公開されています。リポジトリ名から分かる通り、著者の多くが Microsoft Research に所属しています。 免責 読み間違えている可能性があります。正確な情報が欲しい方は必ず論文を読んでください。誤りの指摘や補足、議論などは GitHub Issue や Twitter へお願いします。 更新履歴 2019/07/08 bump pointer と free list の next entry pointer を判定する方法について追記 2019/0

    論文|snmalloc: A Message Passing Allocator (ISMM 2019)
  • DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo

    このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。 私の関わっている業務では Linux kernel をいじることがあるのですが、その中で Linux kernel の変更を提案してマージしてもらった経験があったので、その内容や経緯を紹介したいと思います。 DMA Contiguous Memory Allocator とはどのようなものか DMA Contiguous Memory Allocator は、デバイスドライバがホストとデバイス間の DMA 転送時に使用するメモリとして、かなり大きな連続領域を割り当てることを可能にするためのオプショナルな機能です。 この機能を理解するのに知っておく必要がある Linux kernel でのシステムのメモリ割り当てについて簡単に説明します。 まずページアロケータというシステムのメモリ管理の

    DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • フラッシュメモリーの記憶容量が1000倍になる新材料 - ライブドアニュース

    2018年8月12日 16時6分 リンクをコピーする by ライブドアニュース編集部 ざっくり言うと 広島大学大学院の准教授らが記憶装置の大容量化が期待される分子を発見した 1000倍以上の情報を収納できるフラッシュメモリーの開発につながるという 内部に空洞があるカゴ状の分子が、メモリーとして機能することを突き止めた 広島大学大学院理学研究科の西原禎文准教授らは、市販の不揮発性メモリーに比べて1000倍以上の情報を収納できるフラッシュメモリーの開発につながる分子を発見した。内部に空洞があるカゴ状の分子を使い、情報を記録するメモリーとして機能することを突き止めた。フラッシュメモリーなど記憶装置の大容量化・小型化が期待される。 分子内部の電気的な偏りを利用し、1分子だけで情報量の基単位である1ビットを示せる分子の発見は初めて。従来は数万個以上の分子を並べ、分子が互いに作用しなければ情報を保持

    フラッシュメモリーの記憶容量が1000倍になる新材料 - ライブドアニュース
  • Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho by BPS株式会社

    要約 メモリ断片化は測定や診断が困難ですが、驚くほど簡単に修正できることもあります。マルチスレッドのCRubyプログラム(mallocのスレッド単位メモリアリーナ)におけるメモリ断片化の原因を追ってみましょう。記事のボリュームは3343語、20分程度です。 単純な設定変更だけで問題を完全に解決できることはめったにありません。 私の顧客のSidekiqプロセスが大量のメモリを消費していたことがありました(1プロセスあたり1 GB程度)。開始当初の各プロセスは300MB程度でしたが、時間の経過とともにじわじわと肥大化してほぼギガバイトレベルにまで達したところで落ち着き始めました。 私は顧客にMALLOC_ARENA_MAXというたった1つの環境変数の変更を依頼しました。「2に設定してください」と。 プロセス再起動後、「じわじわ肥大化」現象はピタリと止みました。プロセスのメモリ使用量は以前の半

    Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho by BPS株式会社
  • jemalloc について調べたのでまとめた - zonomasaの日記

    ※この記事は3回シリーズのうちの一つ jemalloc について調べたのでまとめた - zonomasaの日記 続 jemalloc について調べたのでまとめた(ビルドと組み込み方法) - zonomasaの日記 jemalloc の解析機能 - zonomasaの日記 photo by mutednarayan jemalloc とは jemalloc は、標準ライブラリで定義されているmalloc, free 等のメモリアロケーション APIの実装である。 jemalloc : 公式ページ jemalloc は2005年より、Jason Evans によって開発されており、SMPでのスケーラビリティのためにFreeBSD のlibcに取り込ま標準アロケータとなっている。 その他にも、Facebook の内部や、KVS のRedis、fluentd などにも取り込まれている。 具体的には

    jemalloc について調べたのでまとめた - zonomasaの日記
  • OSのデバッグ:メモリアロケーション講座 | POSTD

    追記:やあやあHacker Newsさん!おひさしぶり!メモリ管理を深く掘り下げた私の投稿を読む邪魔はしたくないし、私の投稿のあら探しをする人たちを邪魔するつもりもありません。技術的なマル秘テクニックに注目するのもいいでしょう(いや、わかりますよ。楽しいですしね!)。でも、私たちはひとりぼっちでソフトウェアを書いているわけではないのです。だから、ためになる技術的なコンテンツ(私の記事もそうでありたいものです)を捜すだけじゃなくて、政治的な話題にも目を向けることを強くおすすめします。ソフトウェア開発者である私たちは、今後数十年にわたって社会を変える最前線に立つ特権を与えられています。私たちは、自分たちの仕事を社会全体に役立てられるようにするための情報や知識を必要としています。 そういう意味でみなさんには、 Hacker Newsが「政治的」なコンテンツを検閲すると言い出したこと に反対しても

    OSのデバッグ:メモリアロケーション講座 | POSTD
  • https://anixe.pl/news/rust_memory_safety_revolution/

    https://anixe.pl/news/rust_memory_safety_revolution/
  • Latency Numbers Every Programmer Should Know

    latency.txt :�]�U Latency Comparison Numbers (~2012) ---------------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000 ns 3 us Send 1K bytes over 1 Gbps network 10,000 ns 10 us Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/se

    Latency Numbers Every Programmer Should Know
  • Rambusの逆襲

  • Linuxの不揮発メモリの使い方について - Qiita

    はじめに 2017年は私にとって忙しくも充実した年となりました。今年はLinuxの不揮発メモリ開発のメンテナーの方とお会いしたり、弊社のOSS開発者を育てるためにOSS Gateを弊社社内で行って記事を書いたり、色々なことをやった気がします。 さて、今年のFujitsu Advent Calender part2 24日目のの記事として、昨年Linux Advent Calenderに記載した不揮発メモリの続編を書きたいと思います。昨年の記事をまだ参照されてない方は、そちらを先に見たほうが良いでしょう。 記事ではpart1としてまず不揮発メモリ(NVDIMM)の設定や使い方を紹介したいと思います。2017年のACPIやコミュニティでの動向もこの記事に一緒に記載したかったのですが、長くなるのでpart2として別の記事に記載します。 お断り(お約束) 記事の内容は私個人の見解であり、所属す

    Linuxの不揮発メモリの使い方について - Qiita
  • Pythonでポインタ経由のメモリアクセス - 七誌の開発日記

    Pythonでmalloc()したメモリへのアクセスを試しました。戻り値を POINTER(c_ubyte) へキャストするとアクセスできます。 ※ 例は32bit Windows限定のコードです。UNIX系ではlibcのロード方法が少し違います。 from ctypes import * malloc = cdll.msvcrt.malloc malloc.restype = POINTER(c_ubyte) free = cdll.msvcrt.free printf = cdll.msvcrt.printf p = malloc(4) p[0] = ord("a") p[1] = ord("b") p[2] = ord("c") p[3] = 0 printf(p) free(p) スライス POINTERはスライスできません。スライスできるようにするには、サイズを指定したARRAY

    Pythonでポインタ経由のメモリアクセス - 七誌の開発日記
  • VirtualAlloc mac osx - Google 検索

    2014/12/18 · Does anyone know how of how you specify a base address in vm_allocate? And specifically why a special address should work or not.

  • Linux カーネルのメモリ管理サブシステムの5つの特徴

    メモリ割り当て処理が先に進むことを保証しない 問題が発生する可能性があっても現実に起こるまでは対処しない 故意/悪意あるいはストレステストにより発生する問題には対処しない 自力で真犯人を逮捕できない一般人は相手にしない 他のカーネル開発者の関心を惹かない問題は解決されない 「え~っ!?」って思われましたでしょうか?でも、そういう世界なんだということが解ってきました。 Linux 4.9 で追加されてしまった warn_alloc() によるハングアップを「故意/悪意あるいはストレステストでなくても現実に起こる問題」として削除するのに丸1年かかりました。いやはや、疲れます。 「 Linux システムがハングアップしたらメモリ管理を疑え!?」という諺は、まだ有効です。意図的なストレスを掛けることで発生する問題は全力で無視されてしまうため、実際のシステムで使われている負荷を掛けることで発生するこ

    Linux カーネルのメモリ管理サブシステムの5つの特徴
  • Negative Result: Reading Kernel Memory From User Mode | cyber.wtf

    I were going to write an introduction about how important negative results can be. I didn’t. I assume you can figure out for yourself why that is and if not you got all the more reason to read this blog post. If you think it’s trivial why my result is negative, you definitely need to read the blog post. The memory subsystem I think most researchers would immediately think that reading kernel memor

    Negative Result: Reading Kernel Memory From User Mode | cyber.wtf
  • メモリのシミュレーションモデル - なつたん

    「メモリコントローラを作りたいんだけど、シミュレーションモデルはどするのですか?」 という質問を時々聞きます。おそらく、DIMMとかSO-DIMMを想定しているのだと思います。 私は、とりあえずな時はマイクロンのシミュレーションモデルを使います。 DDRメモリ http://www.micron.com/products/dram/ddrsdram/part.aspx?part=MT46V128M4BN-5B#SIM SDRAM http://www.micron.com/products/dram/sdram/part.aspx?part=MT48LC32M8A2BB-7E#SIM これをもとに、適当にSO-DIMMっぽく配線するとSO-DIMMのシミュレーションモデルの できあがり。提供ファイル(Verilog or VHDL等)はあまり統一されていないのですが、 ある型番のメモリでv

    メモリのシミュレーションモデル - なつたん
  • LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita

    大人気TBSドラマ、「逃げるは恥だが役に立つ」でも話題になったインフラエンジニアという言葉ですが、今ではインターネットインフラを知らないまま開発をするのも難しい状況になっています。クラウドが一般化されたからといって単にリソースの調達が簡単になっただけで、つまりハードウェアの知識が無くても何とかやっていけるようになっただけであり、インフラの知識が要らなくなったなどということは全くなく、むしろdevopsの掛け声とともに、ソフトウェア開発者にインフラを見なければならない新たな責務が課せられたという、なかなか痺れる状況なのだろうと思います。 そういった中で、先日のさくらインターネットのAdvent Calendar最終日に「いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方」という記事を書かせて頂きましたが、今回はLinuxサーバの「負荷」と、ロードアベレージに関して、掘り下げ

    LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
  • いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

    さくらインターネット Advent Calendar最終日は、硬派にLinuxのメモリに関する基礎知識についてみてみたいと思います。 最近はサーバーを意識せずプログラミングできるようになり、メモリの空き容量について意識することも少なくなりましたが、いざ低レイヤーに触れなければいけないシチュエーションになった際に、OSを目の前に呆然とする人が多いようです。 基的にLinux のパフォーマンスについて、メモリをたくさんつめばいいとか、スワップさせないほうが良い とか、このあたりは良く知られたことだと思います。 ただ、なんとなく ps コマンドや free コマンド などの結果を見るだけでなく、もう少しメモリのことについて掘り下げてみてみたいと思います。 メモリとキャッシュ Linux におけるメモリの状態を大きく分けると「使用中のメモリ」「キャッシュ」「空きメモリ」「スワップ」の 4 つに分

    いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
  • Integrating the ION memory allocator [LWN.net]

    Benefits for LWN subscribersThe primary benefit from subscribing to LWN is helping to keep us publishing, but, beyond that, subscribers get immediate access to all site content and access to a number of extra site features. Please sign up today! As part of the Android + Graphics micro-conference at the 2013 Linux Plumbers Conference, we'll be discussing the ION memory allocator and how its functio