Ever wondered how does Go manage memory allocation? In this talk we are going to explore Go’s memory allocator and understand how its algorithm interacts with the operating system to manage memory!
Earning a degree from the Department of Electrical and Computer Engineering at Wayne State University gives you the tools needed to create a faster smartphone, a thinner laptop or a more powerful automotive navigation system. Electrical and computer engineers design and build the gadgets people use every day, as well as the computer hardware within larger systems such as airplanes and robotic asse
IBMは相変化メモリを用いてメモリ群が演算能力を持つ非ノイマン型コンピュータのデモに成功したと発表した。これは「Computational Memory」、演算するメモリによる新しいコンピュータの姿を切り開くものだ。 現在のコンピュータのほとんどは「ノイマン型」と呼ばれるアーキテクチャで実現されています。 ノイマン型アーキテクチャは、メモリにデータを記憶し、そのデータを処理する際にはデータをプロセッサに移動して処理をし、結果をまたメモリに移動して保存する、という仕組みになっています。 データはつねにメモリとプロセッサのあいだをつなぐ「バス」を通じて行き来しなければならないため、大量のデータを高速に処理しようとしてもこのバスの部分の帯域や速度がボトルネックになり、一定以上の性能向上が難しくなります。 ノイマン型のコンピュータはこのバスによるボトルネック、いわゆる「フォン・ノイマン・ボトルネッ
イントロ dsas.blog.klab.org こちらのエントリを拝見したのだが Out of memory and no killable processes... というログを出してカーネルパニックするケースがあるのだなと初めて知った。 幸いにして、過去に同様のメッセージを出すカーネルパニックには遭遇したことがない。あるいはログが取れてなくて気がつかなかっただけかもね! モチベーション 故意に異常を起こして、このカーネルパニックを見てみたい 🔥💀 Out of memory and no killable processes ... のコード 該当のログを出してカーネルパニックするコードは out_of_memory に書かれている (ソースは CentOS7.4 1708 ) /** * out_of_memory - kill the "best" process when w
Strategies for optimizing memory usage in Redis Special encoding of small aggregate data types Since Redis 2.2 many data types are optimized to use less space up to a certain size. Hashes, Lists, Sets composed of just integers, and Sorted Sets, when smaller than a given number of elements, and up to a maximum element size, are encoded in a very memory-efficient way that uses up to 10 times less me
android - Is this explanation about VSS/RSS/PSS/USS accurately? - Stack Overflow StackOverFlowより Androidのメモリ消費量を調査したいとき、毎回困るのが、このvss,rss,pss,ussの概念だ。Linuxにおいては一般的な概念らしいんだけど、Linux開発なんて通らずにAndroid開発にいったものだから、この概念については全くの門外漢だった。 メモリ調査 メモリ調査に関して、軽く触れておく。 参考 まずは公式サイト Investigating Your RAM Usage | Android Developers 日本語だとatmarkITが詳しい Androidで動く携帯Javaアプリ作成入門(49):Android 4.4のメモリ使用状況を把握する3つのツールの使い方 (1/2)
NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories Fast non-volatile memories (NVMs) will soon appear on the processor memory bus alongside DRAM. The resulting hybrid memory systems will provide software with sub-microsecond, high-bandwidth access to persistent data, but managing, accessing, and maintaining consistency for data stored in NVM raises a host of challeng
Intel persistent memoryはデータの保持に電力を必要としない、不揮発性メモリの一種だ。データをメモリからストレージに保存する必要がなくなるなど、コンピュータのアーキテクチャを一変させる可能性を持つ。 現代のコンピュータは基本的にメインメモリとしてDRAMを利用しています。DRAMはアクセスが高速な一方、容量あたりの単価は高く、それゆえ大量にコンピュータに搭載することが難しく、またデータを保持し続けるのに電力を必要とします。 このDRAMの能力と性質を補完するため、一般に現代のコンピュータには二次記憶装置として大容量で安価かつ電力がなくてもデータを保持し続けられるハードディスクドライブなどのストレージを備えています。 こうした現代のコンピュータの構造を一変させようとインテルが5月16日に発表したのが、大容量かつ低価格、しかもデータの保持に電力を必要としない、同社とマイクロ
メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ
κeenです。 今回の話は別にRustに限ったものではないのですが、よくRustを始めたばかりの人がスタックとヒープが分からないと言っているのをみかけるので少しメモリの話をしますね。 厳密な話というよりは雰囲気を掴んで欲しいという感じです。 メモリは配列 プログラム(プロセス)のメモリには実行するプログラム(機械語)やグローバル変数/定数、関数の引数やローカル変数、その他プログラムで使うデータ領域などを置きます。 プロセスに割り当てられるメモリというのは、1つの巨大なのっぺらな配列みたいなものです。サイズも決まってます。64bit OSなら2^64 byteです。 0 2^64 +--------------- ----+ | | | | | ~~ | | +--------------- ----+ これは仮想的なメモリなので実際の物理メモリに2^64 byteの配列がドンと確保される訳
A Scalable Concurrent malloc(3) Implementation for FreeBSD Jason Evans <jasone@FreeBSD.org> Overview • What is malloc(3)? • Previous allocators • jemalloc algorithms and data structures • Benchmarks • Fragmentation • Discussion What is malloc(3) ? • C API for manual memory allocation/deallocation. • Historically: malloc(), calloc(), realloc(), free(). • More recently: posix_memalign(). • Non-stand
追記:やあやあHacker Newsさん!おひさしぶり!メモリ管理を深く掘り下げた私の投稿を読む邪魔はしたくないし、私の投稿のあら探しをする人たちを邪魔するつもりもありません。技術的なマル秘テクニックに注目するのもいいでしょう(いや、わかりますよ。楽しいですしね!)。でも、私たちはひとりぼっちでソフトウェアを書いているわけではないのです。だから、ためになる技術的なコンテンツ(私の記事もそうでありたいものです)を捜すだけじゃなくて、政治的な話題にも目を向けることを強くおすすめします。ソフトウェア開発者である私たちは、今後数十年にわたって社会を変える最前線に立つ特権を与えられています。私たちは、自分たちの仕事を社会全体に役立てられるようにするための情報や知識を必要としています。 そういう意味でみなさんには、 Hacker Newsが「政治的」なコンテンツを検閲すると言い出したこと に反対しても
仮想アドレスと物理アドレスを変換する Address Translationの基本 前回はメモリーの階層構造と同様に、複数段階のキャッシュ構成があることを説明した。今回はちょっと見方を変えた話をしたい。まず、キャッシュという形でCPU内部に搭載されている、別のメモリーについて触れよう。 ご存知の通り、1次キャッシュは通常「ハーバード・アーキテクチャー」と呼ばれる構造に基づき、命令用とデータ用がそれぞれ別に用意される。詳細は後述するが、2次キャッシュや最近では3次キャッシュを搭載するプロセッサーも多くなった。ただ、これらはいずれも「プログラムそのもの、およびプログラムの実行時に利用されるデータ」である。 「ではそれ以外に何かあるのか?」と言われると、これが結構ある。一番多く利用されるのが「TLB」(Translation Lookaside Buffer)と言われるものだ。これは「仮想記憶」
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く