並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

.メモリ管理の検索結果1 - 40 件 / 40件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

.メモリ管理に関するエントリは40件あります。 メモリlinuxmemory などが関連タグです。 人気エントリには 『大規模システムでの Linux のメモリ管理』などがあります。
  • 大規模システムでの Linux のメモリ管理

    (This post is also available in English.) この記事は Linux memory management at scale を 著者の Chris Down さんの許可 を得て Hiroaki Nakamura が日本語に翻訳したものです。 原文のライセンス は CC BY-SA 4.0 であり、翻訳のライセンスも同じく CC BY 4.0 とします。 cgroup2 プロジェクトでの私の仕事の一部として Linux システムのリソース管理についてエンジニアと話すことに多くの時間をかけてきました。 これらの会話を通じてどんどん明らかになってきた 1 つの事実は多くのエンジニアは、シニア SRE たちでさえも、 Linux のメモリ管理についていくつかのよくある誤解を持っていて、そしてそれが彼らがサポートするサービスやシステムが本来確実に稼働したり効率的

      大規模システムでの Linux のメモリ管理
    • Rustのメモリ管理機能とその特徴

      初出:技術評論社刊「ソフトウェアデザイン 2021年9月号」 先日、技術評論社よりRustのメモリ管理機能についての特集に寄稿させて頂きました。 この記事は自分が寄稿させていただいた記事をブログ用に一部推敲・加筆を加えたものです。 なお、ソフトウェアデザインでの特集ではより実践的な例でのメモリ管理についての解説もあるので、興味のある方は本誌のほうも手にとっていただければと思います。 プログラム言語におけるメモリ管理の課題プログラミングにおける課題の一つとしてどうやってメモリ領域(ヒープ領域)を管理するかというものがあります。 C言語ではmalloc/free関数などを用いて手動でメモリを管理しています。 これらの関数はメモリアドレスを示すポインタを介してメモリ管理を行います。 malloc関数は必要なメモリ領域を確保してその先頭番地のポインタを返し、プログラム内ではその番地のメモリを読み書

      • 生のポインタは使わないで! Modern C++のメモリ管理

        本連載では、Modern C++と称されるC++について、Modern C++らしい言語仕様をピックアップし紹介していきます。第3回は、スマートポインタについて紹介します。高度なメモリ管理には生のポインタの使いこなしが必須という古い常識はもはや通用しません。メモリを効率よく、しかも安全に使うことを実現しているスマートポインタについて理解を深めます。 はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。本連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし

          生のポインタは使わないで! Modern C++のメモリ管理
        • Goのメモリ管理 / Memory management in Go

          継続的プロファイルによる大規模アプリケーションの性能改善 / Improving massive application clusters with continuous profiling

            Goのメモリ管理 / Memory management in Go
          • 今更聞けないDBMSのメモリ管理について

            DBMSのメモリ管理について データベース管理システム(DBMS)の設計では、大量のデータと複雑なクエリを処理するために、ハードウェアの特性を最大限引き出すことが求められます。 この記事では、DBMSがどのようにメモリを使ってデータアクセスの速度を向上させ、同時にデータの安全性を確保しているのかを解説します。 DBMSと記憶装置の関係について DBMSが使う記憶装置は次の2つです。 HDD HDDは磁気ディスクを使用してデータを記録・読み取りする記憶装置です。その主な特徴は大容量であり、コスト効率が良いことです。DBMSでは、データの永続的な保存にHDDが用いられます。これにより、システムがシャットダウンされた後もデータが保持され、必要に応じて再びアクセス可能となります。 しかし、HDDのデータアクセス速度はメモリに比べて遅いため、リアルタイム処理や高速なトランザクションが求められるアプリ

              今更聞けないDBMSのメモリ管理について
            • Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp

              Linus Torvaldsは12月11日(米国時間⁠)⁠、前週の告知どおりに「Linux 6.1」の正式リリースをアナウンスした。 Linux 6.1 -Linus Torvalds Linux 6.1はメインライン開発ではじめてRustを採用したことが大きな話題となったが、そのほかにもユーザ空間におけるメモリサニタイザーツールに似た動的エラー検出の「KMSAN」やB-treeベースのデータ構造「Maple Tree⁠」⁠、AMDの新しいPMFドライバのサポートなど多くのアップデートが行われている。Googleの開発者がメインラインへのマージを提案してきた「MGLRU(Multi-generational LRU⁠)⁠」もそのひとつで、古参のカーネル開発者であるAndrew MortonもMGLRUのメインライン化をバックアップしてきた。 Linuxカーネルではメモリ管理に「LRU(Le

                Linux 6.1の注目機能「MGLRU」―メモリ管理に取り入れられたエイジングシステム | gihyo.jp
              • Rustで始めるwebフロント開発。フロントエンジニアのためのRustメモリ管理入門

                この記事は、Supershipグループ Advent Calendar 2021の23日目の記事になります。 はじめまして。まさやんです。 普段はバックエンドをメインで書きつつ、フロント書いたり、AWSでインフラ構築したりと色々やらせてもらってます。 今回は、フロントエンドをメインにやってる人が、rustを始める時に参考になる記事を書こう!と思い立ち、書いてみました。 この前、JSConfの講演を聴いてて、rustの話もどんどん増えているなあと思ったのがきっかけです。 近いうちに、フロントの人もrust触れないとね〜、という時代になるかもなので、自身の学習も兼ねて整理してみました。 自分がつまずいたり、勉強する時参考になったなーという情報を整理して、最後にrustのフレームワークを紹介して終わりにします。 そこそこ長いので、休み休み読んでください。 対象読者 フロントエンドを書いていて、最

                  Rustで始めるwebフロント開発。フロントエンジニアのためのRustメモリ管理入門
                • 「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読んだ

                  最近「おれってガベージコレクションを勉強するにあたってめちゃくちゃ恵まれた環境にあるのでは?」とふと思い立ち、ベージコレクションの勉強を始めました。 ガベージコレクションの勉強を始めるにあたって、とりあえず「The Garbage Collection Handbook (first edition)」の邦訳である「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読むことにしました。 この記事では、読み終わってうれしいので、雑に感想を書きなぐっています。表記が「GC」だったり「ガベージコレクション」だったりするのは雑に書いたからです。 前提知識 ガベージコレクションの事前知識はほとんど不要で、何をしてくれるものか大まかにわかっていれば良い程度だと思います。つまり、ヒープに確保した領域を明示的に解放しなくても、何かのアルゴリズムでいい感じにやってくれる仕組み、ということを知って

                    「ガベージコレクション 自動的メモリ管理を構成する理論と実装」を読んだ
                  • すべての開発者が知っておくべきメモリ管理についての知識

                    プログラミングにおいてメモリ管理は重要な要素の一つですが、その重要性を見過ごされがちなものです。メモリ管理の高レベルな抽象化について、「すべての開発者が知っておくべき要素」としてプログラマーのザカリー・リー氏が解説しています。 Memory Management Every Developer Should Know https://webdeveloper.beehiiv.com/p/memory-management-every-programmer-know メモリは「スタック」と「ヒープ」という2つの領域に分かれています。 ・スタック スタックは「先入れ後出し」という特徴を持つデータ構造で、プログラムの関数呼び出しを記録するのに非常に適しています。例えば下図のように「test()」と「main()」という2つの関数があり、main()からtest()を呼び出す場合を考えてみます。

                      すべての開発者が知っておくべきメモリ管理についての知識
                    • Windows Subsystem for Linux 2のメモリ管理を詳しく見る (1/2)

                      現在プレビュー中の20H1のビルド19013から、WSL2(Windows Subsystem for Linux 2)は、一旦確保したメモリでも不要になれば、きちんとWin32に返すようになった。今回はこのあたりを調べてみる。 WSL2におけるメモリ割り当て WSL2は、軽量ユーティリティ仮想マシン(Light Weight Utility Virtual Machine:以下、LWUVM)内で動作している。このため、ホストとなるWindows 10のメモリの一部を利用する。ただし、メモリ割り当ては、Hyper-Vでいう動的メモリ割り当てであり、上限を決めるものの、実際に使っている分のみを確保して、必要になれば上限までメモリを確保しようとする。 この上限は、WSL2側からは「実装メモリ量」のように見える。デフォルトでは、PC側のメモリの75%をWSL2の上限として割り当てているようだ。た

                        Windows Subsystem for Linux 2のメモリ管理を詳しく見る (1/2)
                      • アプリケーションの巨大化で重要性を増す“hugepage” TLBヒット数を上げるLinuxのメモリ管理機能

                        Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。堀口氏からは「hugepage」の概要とカーネルコミュニティの開発動向について。 TLBの利用効率を上げるhugepage 堀口直也氏:「Linuxのhugepageの開発動向」について発表します。まず簡単に自己紹介です。私は堀口直也と申します。OSSコミュニティでの開発を軸に技術調査や評価、サポーターに従事しています。これまではカーネルコミュニティで、メモリ管理のコミュニティを中心に10年以上カーネル開発をしてきました。ここ数年はブロックチェーンのHyperledgerプロジェクトにも参加していて、ここでもOSSコミュニティで活動しています。 本日のLT(ライトニングトーク)は最初に「hugepage」の概要を話して、そのあとカーネルコミュニティの開発トピックについ

                          アプリケーションの巨大化で重要性を増す“hugepage” TLBヒット数を上げるLinuxのメモリ管理機能
                        • 令和最新版 PHP メモリ管理術

                          PHP カンファレンス関西 2024 PHP Memory Management in Reiwa

                            令和最新版 PHP メモリ管理術
                          • Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp

                            Ruby 3.3リリース! 新機能解説 Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす 2023年12月25日、Ruby 3.3.0がリリースされ、様々な新機能が加えられました。本連載では実際に携わった皆さんにその新しいRubyをご紹介いただきます。 RubyはJust-In-Time(JIT)コンパイラという機能を備えており、これを有効化すると実行時に機械語を生成して様々な最適化が行なわれ、実行が高速になります。Ruby 3.3にはYJITとRJITという2つのJITコンパイラがあり、デフォルトでは無効になっていますが、それぞれ--yjitと--rjitで有効化できます。 この回では、Ruby 3.3でYJITの性能特性が変化した点や、YJITに新たに追加された便利な機能、またRJITはどのように使うものであるかについて解説します。 YJ

                              Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp
                            • Rubyのメモリ管理方法1: 基本概念(翻訳)|TechRacho by BPS株式会社

                              概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: How does Ruby manage memory? | Saeloun Blog 原文公開日: 2022/04/12 原著者: Murtaza Bagwala サイト: Saeloun Blog 本シリーズは2回に分けてお送りいたします。本シリーズの目的は、Rubyのメモリ管理の基本概念を紐解くことと、#18045で導入された可変幅アロケーション(Variable Width Allocation)によってRubyのメモリパフォーマンスがどのように向上するかを深く調べることです。 RVALUE Rubyプログラムでは、動的なメモリアロケーションにヒープ(heap)メモリを利用しており、ヒープの基本単位はスロット(slot)です。個別のスロットはRVALUEと呼ばれる値を占有します。RVALUEのサイズは40バイトで、Arra

                                Rubyのメモリ管理方法1: 基本概念(翻訳)|TechRacho by BPS株式会社
                              • コンピューターのメモリ管理を担う「仮想記憶」の仕組みとは?

                                コンピューターを選ぶとき、「RAMは多い方がいい」という意見を耳にしたことがあるかもしれません。RAMはコンピューターの主記憶装置として使用され、CPUが直接アクセスする高速なメモリです。そのRAMを扱う上で重要な仕組みである「仮想記憶」について、数学やIT、金融などを扱うブログ「Internal Pointers」が解説しています。 An introduction to virtual memory - Internal Pointers https://www.internalpointers.com/post/introduction-virtual-memory 現代のコンピューターは、記憶媒体として主記憶であるRAMと補助記憶装置であるHDDやSSDを備えているのが一般的です。データを大量に保存する場所としてはHDDやSSDが適していますが、CPUが直接アクセスするには読み書き速

                                  コンピューターのメモリ管理を担う「仮想記憶」の仕組みとは?
                                • Goにおけるメモリ管理の可視化

                                  はじめに この記事は@deepu105に許可を頂きVisualizing memory management in Golangという記事の翻訳したものになります。 Goのメモリ管理を図やスライドを活用して非常に分かりやすく説明されていたため、学習として翻訳しました。 以降が実際の記事の翻訳になります。 これは"メモリ管理"シリーズになります。 🚀 Demystifying memory management in modern programming languages 🚀 Visualizing memory management in JVM(Java, Kotlin, Scala, Groovy, Clojure) 🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssemb

                                    Goにおけるメモリ管理の可視化
                                  • Linux メモリ管理 徹底入門(プロセス編)

                                    Linux カーネルのメモリ管理方法について、勉強したことをまとめる。プロセス編。 カーネル編はこちら。 Linux メモリ管理 徹底入門(カーネル編) - SIerだけど技術やりたいブログwww.kimullaa.com OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux メモリ管理の特徴メモリの使い方を簡素化すると、次の図のようになる。 どのような特徴があるかをまとめる。 連続した

                                      Linux メモリ管理 徹底入門(プロセス編)
                                    • スマホアプリは開きっぱなしでもなぜ大丈夫か、Androidのメモリー管理

                                      Androidスマホでアプリを切り替えるとき、古いアプリを閉じたほうがいいかというと、実はパソコンとは事情が異なる。そもそもほとんどのスマホのストレージには仮想メモリーが存在しない。その代わりにAndoroidでは2つのやり方で、きめ細かくメモリーを管理している。「zRAM」とアプリの自動終了だ。 スマホのメモリーにはzRAMと呼ばれる特殊な領域がある。これはメモリー内に用意した圧縮フォルダーのようなものだ(図1)。当面必要としないデータはここに入れて圧縮し、必要なときに取り出す。 図1 Androidのスマホには「zRAM」という領域があり、必要に応じてデータを移動して圧縮する。しかし、パソコンのような仮想メモリーはない(一部の機種を除く)

                                        スマホアプリは開きっぱなしでもなぜ大丈夫か、Androidのメモリー管理
                                      • オブジェクトライフサイクルとメモリ管理を学ぼう / OOC 2020

                                        Object-Oriented Conference 2020 https://ooc.dev/ #ooc_2020 #ooc_b Session Abstract https://fortee.jp/object-oriented-conference-2020/proposal/a07d4c1a-40f0-4d9e-9f00-4bb522b07ca2

                                          オブジェクトライフサイクルとメモリ管理を学ぼう / OOC 2020
                                        • 2021年11月15日 Linux 5.16 rc-1がリリース、メモリ管理の新機構「folio」も実装へ | gihyo.jp

                                          Linux Daily Topics 2021年11月15日Linux 5.16 rc-1がリリース、メモリ管理の新機構「folio」も実装へ Linus Torvaldsは11月14日(米国時間⁠)⁠、次期カーネル「Linux 5.16」の最初のリリース候補版となる「Linux 5.16-rc1」を公開した。マージウィンドウがオープンした時期とLinusの旅行が重なっていたこともあり、今回のRC1リリースにあたって若干のトラブルを覚悟していたというLinusだが、結果としては「すべてうまくいった(it all worked out fine⁠)⁠」とコメント、次期リリースに向けて順調な滑り出しとなったようだ。 Linux 5.16-rc1 -Linus Torvalds Linux 5.16では現バージョンのLinux 5.15よりも多くのアップデートが予定されているが、その中でもLin

                                            2021年11月15日 Linux 5.16 rc-1がリリース、メモリ管理の新機構「folio」も実装へ | gihyo.jp
                                          • Linux メモリ管理 徹底入門(カーネル編)

                                            メモリ管理は、Linux カーネルのコアな機能です。この機能を理解することで、サーバの統計情報の意味がわかるようになったり、トラブル解析ができるようになります。 この記事では、Linux カーネルのメモリ管理について勉強したことを基礎からまとめます。 時間がない人は ここ と ここ だけ読んでらえればと思います。 プロセス編はこちら。 Linux メモリ管理 徹底入門(プロセス編) - SIerだけど技術やりたいブログwww.kimullaa.com メモリ管理はハードウェアに強く依存するため、x86_64 かつ OS起動後に 64bitプロテクトモード に移行したあとに話を絞る。また、OS は CentOS8.1、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ]# un

                                              Linux メモリ管理 徹底入門(カーネル編)
                                            • メモリとはなんぞや ~ Node.js のメモリ管理を知る ~|ラキール公式|株式会社ラキールのエンジニアたちによるTECH BLOG

                                              こんにちは。株式会社ラキールで DX 基盤開発を行う LaKeel DX Engine Group に所属する星と申します。 普段は LaKeel Synergy Logic という自社 API Gateway を開発しています。 社内ウェビナー(ウェブセミナー)で発表した Node.js のメモリ管理について、その内容の一部を公開します。 メモリメモリとはメモリとはメモリ(RAM, Random Access Memory)とはコンピュータのデータを一時的に記録するためのパーツで、日本語では主記憶装置と言われたりします。 メモリは主に作業机の広さなどに例えられたりします。 (机が広いと様々な道具を一度に使える≒ブラウザのタブをいっぱい開きながら画像編集がサクサク実行できる) プログラミングの文脈でいえば、メモリは実行するプログラムそのものやデータ(変数など)を保持する場所になります。 メ

                                                メモリとはなんぞや ~ Node.js のメモリ管理を知る ~|ラキール公式|株式会社ラキールのエンジニアたちによるTECH BLOG
                                              • Windows Subsystem for Linux 2のメモリ管理を詳しく見る (2/2)

                                                メモリを大量に使い、その後に戻してみる では、次に、メモリを大量に確保したあとに開放して、Win32側にメモリがもどされるかどうかを確認してみる。テストには、Ubuntu-18.04を用いた。メモリを消費させる方法にはいくつかあるが、ここでは、stressというコマンドをインストールして使う。インストール方法は、WSL2のコマンドラインから以下のコマンドを使う(Ubuntuの場合)。 sudo apt update sudo apt install stress 実際にインストールするのは2行目のコマンドである。1行目はやる必要がないとわかっているならやらなくてもよい。蛇足ながら1行目は、その意味がわからない人がエラーを起こさないように入れてある。これでstressコマンドが利用できるようになる。このコマンドはシステムに負荷を掛けてテストをするためのものである。たとえば、メモリを1GB確保

                                                  Windows Subsystem for Linux 2のメモリ管理を詳しく見る (2/2)
                                                • PHP メモリ管理術 - Speaker Deck

                                                  Speaker Deck This deck requires a password Password

                                                  • キャッシュかインメモリーか? DBMSのメモリー管理アーキテクチャの違いと使い分け

                                                    この連載では、開発者の皆様がシステム・アーキテクチャやアプリケーション・コードをより洗練させるのに役立つデータベース・マネジメント・システム(DBMS)の基本を振り返り、実装に合った技術の組み合わせを解説します。今回は、DBMSエンジンのメモリー管理アーキテクチャの違いについて扱います。 はじめに データは電源を切っても保存されるハード・ディスクやフラッシュ・メモリーに格納されています。しかしこれらのデバイスは低速なので高速なDRAMにデータを格納して処理します。DBMSのメモリー管理アーキテクチャはキャッシュをベースにするものとインメモリーをベースにするものに大別できます。これらにはやはり長所と短所があります。今回はメモリー管理アーキテクチャの違いによるトレード・オフとその用途、そして短所に折り合いをつける実装について見ていきましょう。 なお、本連載で例として挙げるデータベースはオラクル

                                                      キャッシュかインメモリーか? DBMSのメモリー管理アーキテクチャの違いと使い分け
                                                    • Rubyのメモリ管理方法2: Ruby 3.1の文字列の可変幅アロケーション(翻訳)|TechRacho by BPS株式会社

                                                      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Ruby 3.1 introduces Variable Width Allocation for Strings | Saeloun Blog 原文公開日: 2022/04/19 原著者: Murtaza Bagwala サイト: Saeloun Blog 本記事は第1回の続編です。今回はRubyのメモリ管理における可変幅アロケーション(Variable Width Allocation: VWA)の仕組みと、可変幅アロケーションがRubyのメモリパフォーマンスをどのように改善するかについて深く見ていくことにします。可変幅アロケーションについて説明する前に、巨大オブジェクトがどのようにヒープに割り当てられるかを理解しましょう。 ヒープ上の巨大オブジェクト ご存知の通り、スロットのサイズは40バイトで、その中で実際のコンテンツが格

                                                        Rubyのメモリ管理方法2: Ruby 3.1の文字列の可変幅アロケーション(翻訳)|TechRacho by BPS株式会社
                                                      • Swiftのメモリ管理を知る

                                                        Swiftの優秀な言語仕様のおかげで、私たちがメモリ管理について意識することは少なくなりました。一方で、Swiftのメモリ管理方式では循環参照が発生し、メモリリークが起こることもあります。本記事ではこのような問題の対処方法も含め、Swiftにおけるメモリ管理を解説します。 値型のメモリ管理値型は、変数が使われなくなると(=スコープの範囲外に出ると)すぐに自動で解放されます。値型に関してはメモリ管理を考える必要はありません。 参照型のメモリ管理参照型は、その名の通り複数の箇所から1つのメモリを参照するので、使われなくなったかどうかを単純に判定することができません。そこでSwiftでは、Automatic Reference Counting, 通称ARCという方式を用いて、メモリ領域を自動的に管理してくれます。他言語ではGC(ガベージコレク ション)という名で同様の仕組みが提供されていること

                                                          Swiftのメモリ管理を知る
                                                        • 【Unity】Addressableアセットシステムのメモリ管理の仕組み - LIGHT11

                                                          UnityのAddressableアセットシステムのメモリ管理の仕組みについてまとめました。 はじめに ロードとリリース(アンロード)をペアにするのが基本 GameObjectの生成方法とメモリ管理 2つの生成方法 メモリのリリース方法の違い どちらを使えばいいのか? シーンのアンロードタイミング その他明示的なリリースが必要なもの 自動的に解放されるもの 参照カウントを見る 関連 参考 Unity2019.2.10 Addressable1.3.8 はじめに この記事ではAddressableアセットシステムのメモリ管理の仕組みについてまとめます。 Addressableの概念や基礎知識についての説明はこの記事では省略しますが、 以下の記事にまとめていますので、必要に応じて参照してください。 light11.hatenadiary.com また、ロードやアンロードの基本的なやり方について

                                                            【Unity】Addressableアセットシステムのメモリ管理の仕組み - LIGHT11
                                                          • OS のメモリ管理の仕組み - かーねるさんとか

                                                            OS のメモリ管理の仕組みについて調べたことをまとめました。 読んでいただくと、以下のようなことについて少し詳しくわかるかもしれません。 あるユーザー空間プロセスが他のユーザー空間プロセスのメモリにアクセスできない理由 ユーザー空間プロセスがカーネル空間のメモリにアクセスできない理由 ユーザー空間のプロセスとスレッドの違いはどのように実装できるか 共有メモリはどのように実装できるか メモリマップトファイルはどのように実装できるか malloc は何故必要か あるコンテナが別のコンテナのメモリにアクセスできない理由 コンテナと仮想マシンのメモリ領域の分離についての違い 上記の全ての点について、仮想メモリという一つの機構で概ね説明可能である、というのが今回のポイントです。 また、そもそものユーザー空間プロセスとメモリの関係についても、少しわかるかもしれません。 当記事は、x86-64 CPU

                                                              OS のメモリ管理の仕組み - かーねるさんとか
                                                            • PostgreSQLのメモリ管理を考える - Kattsu Sandbox

                                                              はじめに本記事はPostgreSQL Advent Calendar 2020の 10 日目です。 PostgreSQL のメモリ管理についていろいろと壁にぶつかったのでわかる範囲で知見をまとめていきたいと思います。 PostgreSQL のバージョンは 13.1 で検証しています。 なぜメモリ管理を適切にする必要があるのかそもそもですが、なぜメモリ管理を適切にする必要があるのでしょうか。 簡潔に言うと パフォーマンスと安定性のため と言えるかと思います。 まず、データベースのデータはすべてファイルとしてディスクに保存することで永続化されます。 データを取得・更新する際にはディスクへの読み書きが発生するのですが、これはメモリに比べて非常に遅いことが知られています。 では、可能な限りメモリから読み書きするようにすればいいのかというと、通常データベースが扱うサイズは搭載メモリサイズよりも大きい

                                                              • 【Swift】Swiftのメモリ管理を内部の仕組みから学ぶ - Qiita

                                                                普段コードを書いている時に Swiftが内部で どのようにオブジェクトを管理しているのかについて 考えることはあまり多くないかもしれません。 しかし 非同期処理を扱う場合など などのように weakといった キーワードを使用することは多くあると思います。 これは「弱参照」と呼ばれ 直接の参照(強参照)を持たないように Swiftに内部に指示をして 循環参照を起こさないための仕組みです。 こういった適切なメモリ管理を行わないと メモリが解放されないことでランダムにクラッシュが起こるなど 原因がわかりづらい不具合を発生させる可能性があります。 そこで今回は weakなどを使用することで Swiftが何をしているのかを 内部の仕組みから見ていくことで weakやunownedの使い方や オブジェクトのライフサイクルについて 学んでみたいと思います。 メモリの3つ仮想的な領域 メモリ自体はただのバ

                                                                  【Swift】Swiftのメモリ管理を内部の仕組みから学ぶ - Qiita
                                                                • 【初心者入門】Rustメモリ管理(所有権、借用、ライフタイム) - Qiita

                                                                  メモリとはCPUが処理を行う際に読み書きを行うデータを格納する領域。 Rustはを採用していない →プログラマがメモリ管理をコントロールすることができる →低レベルソフトウェアを開発できる(OSなど) ガベージコレクション ガベージコレクションとはメモリの解放を自動で行ってくれる機能 GC(ガベージコレクション)が使用されている言語とされていない言語がある 所有権・借用権・ライフタイム Rustではガベージコレクション(GC)を使用せずにメモリ安全性を確保するために所有権と借用とライフタイムの仕様を採用している 【所有権】 所有権:変数の中身を所有する権利 Rustの所有権(ownership)は、値の所有者をただ一つに限定し、その所有者が値の破棄処理を行う責任を持つという規則である。 変数を代入すると、Rustは変数の所有権ごと渡す

                                                                    【初心者入門】Rustメモリ管理(所有権、借用、ライフタイム) - Qiita
                                                                  • AWS Glue でメモリ管理を最適化する | Amazon Web Services

                                                                    Amazon Web Services ブログ AWS Glue でメモリ管理を最適化する AWS Glue は、Apache Spark のパワーを使用して分析用のデータセットを準備および処理するサーバーレス環境を提供します。シリーズの第 3 回目の記事では、AWS Glue が一般的なデータ変換を実行するコードを自動的に生成する方法について説明しました。また、AWS Glue ワークフローを使用して、分析のためにデータを簡単に取り込んで変換し、ロードできるデータパイプラインを構築する方法も見てきました。 Apache Spark には、さまざまなワークロードに対してメモリがどのように管理されるかを制御するためのノブがいくつもあります。ただし、これは厳密な科学ではなく、非効率的な変換ロジック、最適化されていないデータ分割、または基盤となる Spark エンジンの他の特異な動作のために、ア

                                                                      AWS Glue でメモリ管理を最適化する | Amazon Web Services
                                                                    • データ分析に役立つメモリ管理・削減方法 - のんびりしているエンジニアの日記

                                                                      皆さんこんにちは お元気ですか。最近自炊が少しずつ捗ってきました。 本日はデータ分析でよく起こる「Memory Error」の対策を書いていこうと思います。 今回のはGPUではなく、CPUです。 そもそもなぜ「Memory Error」と遭遇するのか 大量のデータを解析する、もしくは、大量の特徴量を扱うからです。 または、途中の巨大途中処理が原因で載らなくなったとかですね。 その結果、マシンが落ちることもデータ分析している人が陥るよくあることです。 その場合の処方箋を書いていこうと思います。 メモリ対策 不要な変数のメモリを開放する。 一番シンプルで、もういらないから消してしまえという方式です。 方法は単純です。変数をdelして、ガーベジコレクション(不要なメモリを回収し、空ける方式)を実行することです。 例えば、次の通りです。 import gc import numpy as np m

                                                                        データ分析に役立つメモリ管理・削減方法 - のんびりしているエンジニアの日記
                                                                      • メモリー管理を安全に、次代のシステムプログラミング言語「Rust」の魅力とは

                                                                        Rustは米Mozilla(モジラ)が支援するオープンソースのプログラミング言語だ。システムのプログラムを記述するために開発された言語で、C/C++を代替しようとしている。強い静的型付けを採用するコンパイル言語であり、型やメモリーの安全性、並行性などを重視する。文法はC/C++に似ている。中カッコによるブロックの指定、ifやforによる制御、関数の定義方法などはC/C++に近い。 Rustが登場したのは2006年。改良が続けられて、現在では世界中のエンジニアが最も注目する言語の1つとなった。ここではRustでシステムを開発する2社の事例を基に、メリットや使いどころを見ていこう。 メモリー管理の厳格さを考慮 検索ソリューションやダイナミックプライシングソリューションなどを手掛けるフォルシアはデータを高速検索するインメモリーデータベースの開発にRustを活用している。Rustを使い始めたのは2

                                                                          メモリー管理を安全に、次代のシステムプログラミング言語「Rust」の魅力とは
                                                                        • Linux メモリ管理 徹底入門(プロセス編)

                                                                          Linux カーネルのメモリ管理方法について、勉強したことをまとめる。プロセス編。 カーネル編はこちら。 Linux メモリ管理 徹底入門(カーネル編) - SIerだけど技術やりたいブログwww.kimullaa.com OS は CentOS7.6、カーネルは次のバージョンを利用する。 ]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) ]# uname -a Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux メモリ管理の特徴メモリの使い方を簡素化すると、次の図のようになる。 どのような特徴があるかをまとめる。 連続した

                                                                            Linux メモリ管理 徹底入門(プロセス編)
                                                                          • Goのメモリ管理を眺めてみた

                                                                            Golangでツールやアプリケーションを作ったりしてるが、 メモリ管理がどのようになっているのか気になったので眺めてみた。 メモリ領域ざっくり復習のためメモリ領域についてまとめる。 メモリ領域は メモリ領域 内容

                                                                            • 【第13回】基本から始める SQL Server【メモリ管理】 - NOBTAの気ままにITブログ

                                                                              第12回では 整合性チェック コマンド (DBCC CHECKDB) を使用し、不整合の発生したデータベースを修復する方法についてまとめてみました。 今回は、SQL Serverのメモリ管理に関する内容をまとめてみようと思います。 SQL Server メモリ管理について max server memory で制御可能なメモリ領域について max server memory で制御可能なメモリ領域 (詳細) max server memory で制御できないメモリ領域 (詳細) まとめ SQL Server メモリ管理について SQL Server プロセスは既定で動的メモリが有効になっており、パフォーマンスを最大限に発揮するため、使用できる限りのメモリを確保し、必要に応じて解放するという動作が行われています。 ※ SQL Server がインストールされたサーバーでは、一般的に SQL

                                                                                【第13回】基本から始める SQL Server【メモリ管理】 - NOBTAの気ままにITブログ
                                                                              • C++ スマートポインタのメモリ管理の仕組み

                                                                                1. 概要 C++11 から導入されているスマートポインタ(unique_ptr, shared_ptrなど) のメモリ管理の仕組みについて調べたことをまとめています。スマートポインタでは、new/deleteの関係ように自分で意図的に delete をしなくても、その変数の生存範囲(スコープ)が終わったタイミングで自動で破棄されるため、動的に確保されたメモリのメモリリークを防ぐことが出来ます。 ここではスマートポインタ自体の前提知識について説明しませんが、C++11スマートポインタ入門が非常に良くまとまっているため、必要があればこれを読むことをお勧めします。 また、ソフトウェアデザイン 2021年9月号でも、C/C++のメモリ管理について概要が少しだけ説明されています。 2. 参照先が誰も居なくなった時点でメモリ解放 スマートポインタの場合、その変数を参照する人が誰も居なくなった時点で自

                                                                                  C++ スマートポインタのメモリ管理の仕組み
                                                                                • スマートポインタとボックス――Rustのメモリ管理を理解する

                                                                                  ポインタとスマートポインタ ポインタという言語仕様は、多くのプログラミング言語に存在します。特にC言語で重要なポジションを占めている印象が強いですが、値の実体を持たずに「場所」のみの情報で値へのアクセスが可能なため、融通性と効率性に優れています。反面、使いこなしが難しいとされ、言語習得の上でのハードルであったり、バグ発生の大きな要因とされたりすることも多い存在です。ただし、使いこなせれば強力な武器となるのは間違いありません。今回は、このポインタがテーマです。 ポインタとしての参照 Rustでもポインタが使えます。それが、「参照」と「スマートポインタ」です。参照は、連載第6回で紹介しました。値を「&」演算子によって借用すると、それは参照となり、所有権を持たずに値へアクセスできる、というものです。これはまさにポインタの働きそのものです。参照は値を指し示すだけなので、その利用においてオーバーヘッ

                                                                                    スマートポインタとボックス――Rustのメモリ管理を理解する
                                                                                  1

                                                                                  新着記事