タグ

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

タグの絞り込みを解除

メモリに関するiwwのブックマーク (292)

  • man msync (2): ファイルをマップしたメモリと同期させる

    iww
    iww 2024/04/28
    『Linux 2.6.19 以降では MS_ASYNC は実際には no-op (何もしない命令) である』 マジで? 律儀に呼んでいたのに 無駄だったの?
  • 地球から240億キロ、ボイジャー1号システム復旧に成功 5カ月ぶりに解読可能データ受信

    (CNN) 地球から最も遠い宇宙空間を飛行する米航空宇宙局(NASA)の探査機「ボイジャー1号」から、5カ月ぶりに解読可能なデータが地球に届いた。NASAのチームが試行錯誤を繰り返し、通信問題を引き起こした原因が1個のチップにあることを突き止めて、解決策を編み出した結果だった。 ボイジャー1号は現在、地球から240億キロメートル離れた宇宙空間を飛行中。打ち上げから46年を経て、さまざまな不具合や老朽化の兆候が見えている。 今回の問題は2023年11月に発生。飛行データシステムの遠隔測定モジュールから送られてくるデータが解読不可能になった。 ボイジャー1号の飛行データシステムは、現在の健康状態を表す工学データを科学計器の情報と組み合わせて収集している。地球上の管制室はそのデータを、0と1で構成される2進コードで受信する。 ところが11月以来、この飛行データシステムがループ状態に陥り、無線信号

    地球から240億キロ、ボイジャー1号システム復旧に成功 5カ月ぶりに解読可能データ受信
    iww
    iww 2024/04/24
  • 革命の日々! __attribute__(alloc_size) を使わないと_FORTIFY_SOURCE を活かせないよ。という話

    _FORTIFY_SOURCEというバッファーオーバーフロー攻撃を防ぐのにとても有用なマクロがある。 知らなかった人は以下のmanでもまず見てください http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/feature_test_macros.7.html _FORTIFY_SOURCE (glibc 2.3.4 以降) このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが 実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。 現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3),

  • メモリバグ検出ツールのAddressSanitizerについて|TECH BLOG|モノリスソフト

    はじめに こんにちは。モノリスソフト プログラマーの木村です。 C++プログラムのメモリバグ検出ツールである Address Santizer(以降ASan)について調べましたので紹介します。 ASanを導入することで、コードを大きく変更することなく、容易かつ効果的にメモリバグを検出できる可能性があります。 ASanの概要 ASanは、ランタイムのメモリバグ検出ツールです。 LLVM(v3.1~)でサポートされ、VisualStudio2019(v16.9~)でもサポートされるようになりました。 ASanによって以下のようなメモリバグを検出できます。 解放後アクセス ヒープバッファオーバーフロー スタックバッファオーバフロー グローバルバッファオーバフロー リターン後のアクセス スコープ外後のアクセス 初期化順序バグ ASanの動作概説 ASanではざっくり以下の方法でメモリチェックを行い

    メモリバグ検出ツールのAddressSanitizerについて|TECH BLOG|モノリスソフト
  • 今、64GBのiPhoneを選んではいけない理由 - はやぽんログ!

    新年度が近づき、これから初めてのスマートフォンを購入する方も多い時期に突入する。その中でも「iPhone SEの64GB」だけはむやみに選んではいけないと意見する。どんなに安くてもこれだけは選んではいけないのだ。 64GBのiPhone。今ではあっという間に容量不足に陥る 無難に選ぶiPhoneだからこそ。容量選びは慎重に 64GBのiPhone。今ではあっという間に容量不足に陥る まず、令和のこの時代に64GBのiPhoneは拷問以外の何物でもない。ちょっとでもリッチなコンテンツが楽しむものなら、あっという間に容量不足に陥る。一般的な使用方法でも、長期的な利用は難しい容量だ。 よく知られていることだが、64GBのiPhoneでも64GB丸々利用できるわけではない。OSなどのスマートフォンを動作させるソフトウェアなどの容量がここから差し引かれ、概ね55GB前後が実際に利用できる容量だ。ここ

    今、64GBのiPhoneを選んではいけない理由 - はやぽんログ!
    iww
    iww 2024/03/01
    当分64GBで十分だということがわかった
  • 2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」 | gihyo.jp

    Linux Daily Topics 2019年8月22日Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」 Androidには、起動中のアプリやサービスが増え過ぎてメモリを圧迫する状態になった場合、「⁠lowmemorykiller daemon(lmkd⁠)⁠」というデーモンが起動し、優先度の低いアプリ/サービスを強制的に終了し、メモリ領域を確保する仕組みがユーザスペースに実装されている。 このlkmdに似た仕組みをLinuxデスクトップのユーザスペースでも実現するべく、Red Hatでデスクトップ開発を担当するBastein Noceraは8月21日、私的なプロジェクト「Low-Memory-Monitor」を立ち上げた。 low-memory-monitor: new project announcement : /bɑs ˈtjɛ̃

    2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」 | gihyo.jp
    iww
    iww 2024/02/14
    OOMキラーが殺しに来る前に「メモリやばいッスよ」とシグナル出してくれるツールらしい
  • g++: internal compiler error: Killed (program cc1plus) が出た時

    libtool: compile:  g++ -DPACKAGE_NAME=\"nysol_mcmd\" -DPACKAGE_TARNAME=\"nysol_mcmd\" -DPACKAGE_VERSION=\"3.0\" "-DPACKAGE_STRING=\"nysol_mcmd 3.0\"" -DPACKAGE_BUGREPORT=\"info@nysol.jp\" -DPACKAGE_URL=\"\" -DPACKAGE=\"nysol_mcmd\" -DVERSION=\"3.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1

    g++: internal compiler error: Killed (program cc1plus) が出た時
  • Chromeでタブの自動サスペンドを無効化する

    Google Chromeでは少し前のバージョンからautomatic tab discardingという機能が有効化されており、一定時間非アクティブ状態のタブのメモリが自動で解放されるようになっています。 しばらくアクセスしていなかったタブを再度表示した際に自動でリロードが走って画面が更新される時ありませんか?あれです。 システムメモリが逼迫気味になっている時などをよしなに検知して発動するようなので基的には便利な仕様なのですが、常時アクセスしているWebアプリなどメモリの解放を無効にしたい場合がありますよね。 具体的には自分の場合だとGoogle Colaboratoryでブラウザの接続を維持しておきたい時にメモリの解放を抑制したいケースがありました。 こういう時にどうすればいいのか調べて試してみました。良い感じのやり方を紹介します。 やり方 一番簡単な方法はブラウザのURLバーにch

    Chromeでタブの自動サスペンドを無効化する
  • プログラマのためのフラッシュメモリ入門 - Qiita

    はじめに 最近はSSDが広まってきたため語られることが増えてきたものの、以前はそうでもなかったような、そんなフラッシュメモリにまつわる話をこのへんでプログラマ視点でまとめておこうと思う。 技術的な話というよりポエム感がでているかもしれない。内容がLinuxにかたよっているかもしれない。 FTLとMTD HDDと比較するとフラッシュメモリは以下のような点が異なる。 read, writeはページ単位で行う 通常はwriteは上書きできない writeしなおすためには一度eraseをする必要がある eraseはブロック単位で行う 今時のMLC NANDだと、ページは8KiBでブロックが512KiBとかそんなオーダ、 NORはランダムreadできる(でも最近はSPI接続だよねぇ)、ビットを寝かす方向なら上書きwriteできる(でもECCが高度化する今時のNANDではやらないよねぇ)、とか細かい話

    プログラマのためのフラッシュメモリ入門 - Qiita
  • COLUMN:【SSD/NAND 基礎講座】 31.Read Disturb(リード ディスターブ) 1/2

    特定のエリアに偏って読み出し続けていると、書き換え回数が多く、かつ、 長期間にわたって読み出さないエリアの誤り率が増加する。 1.書き換え回数が多くなるほどメモリセルに対するストレスが蓄積し、 記録したデータが時間経過とともに消えやすくなる。 2.特定のブロックだけを繰り返して読み出した時、 読み出さないエリアにもストレスがかかる。 NANDフラッシュメモリは読み出さないエリアにも電圧が加わる。 このため記録したデータが少しずつ消えていく(電圧が少しずつ低下し、しきい値を下回る)。 NANDフラッシュメモリはReadを繰り返すだけでセルに負荷をかける。 Eraseには制限回数があが、Readは過度にReadを繰り返すとビット化けを起こす危険がある。 Readすると該当するページに負荷がかかるが、 ワードラインとビットラインを共有している別のページや隣接するブロックにも負荷がかかる。 Rea

    iww
    iww 2023/01/25
    ずっと同じメモリを読んでると隣のメモリが狂う現象
  • リードディスターブとは

    この記事で紹介している製品 フラッシュストレージ製品 NANDの読み出し動作 NANDのリードはページ単位で行われます。 読みたいページが割り当てられたワードラインに隣接するワードラインに電圧を かけることで、読みたいワードラインの各セルに蓄えられた電圧を検出し、各ビットの 値が1か0かを判断します。 リードディスターブとは 特定のページを繰り返し読み出した場合、隣接するワードラインに繰り返し 電圧を印加することになります。 この動作は弱くデータを書き込む動作と同じになるため、セルは元々記録された 値から変化してしまいます。この現象をリードディスターブと呼びます。 リードが繰り返されることで、そのページおよび近傍のページのデータが異常になる ことがあるので、SSDはファームウェアで対策をしています。 弊社のリードディスターブへの対策について 以下の「お問い合わはこちら」よりご連絡お願いしま

    リードディスターブとは
    iww
    iww 2023/01/25
    ずっと同じとこのメモリを読んでると隣のメモリが狂う現象
  • リードディスターブ - トランセンド|メモリ製品のスペシャリスト

    iww
    iww 2023/01/25
    ずっと同じメモリを読んでると隣のメモリが狂う現象
  • Runtime Broker が大量のメモリを使用している - Microsoft サポート

    Runtime Broker はタスク マネージャーに表示される Windows プロセスの 1 つで、お使いの PC で、Windows ストア アプリのアクセス許可の管理に役立ちます。通常、使用するメモリは数 MB のみですが、場合によっては、障害のあるアプリが原因となって、Runtime Broker が最大で 1 GB 以上の RAM を使用する可能性があります。 RAM の使用量が高く、お使いの PC の動作が遅い場合、アプリが問題の原因である可能性があります。Ctrl キーと Shift キーを押しながら Esc キーを押してタスク マネージャーを表示し、[プロセス] タブで、Runtime Broker が使用しているメモリの量を確認します。Runtime Broker の使用しているメモリが全容量の 15% を超えている場合、PC のアプリに問題がある可能性があります。Ru

  • たぶんエンジニアには64GB(以上の)メモリのPCを与えた方が生産性が上がると思う件 - Qiita

    会社で支給するPCのスペックについて、どういうものが良いのか、よく思案します。(僕は情シスではないのですが) 要は、エンジニアの生産性です。 最近はなんでもブラウザを利用するようになっていて、例えばクラウドを利用した開発や運用ならそのクラウドのWebページを複数開く必要があるし、システムによっては監視アプリケーションや運用に使うアプリや開発自体もWebでやる場合があると思います。 で、私のローカル環境について言うと、今使っているのは32GBメモリのPCなのですが、ブラウザって、タブごとに数十MB~数百MB(大体200~300MB, 大きいときは500MBなど)使ってて、ブラウザだけでめっちゃメモリうんですよね。 以下は、FirefoxでAWSの開発/ステージング/番環境の検証や運用を1日やっていたときの、タスクマネージャでのfirefox.exeの各タブ(=プロセス)でのメモリ消費です

    たぶんエンジニアには64GB(以上の)メモリのPCを与えた方が生産性が上がると思う件 - Qiita
    iww
    iww 2022/10/16
    24GBで足りちゃってるわ・・・ 正直、ディスプレイが3枚あればあとはそんなに求めない
  • JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開

    JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開 メタ(旧Facebook)は、JavaScriptアプリケーションのメモリリークを検出するフレームワーク「MemLab」をオープンソースとして公開したと発表しました。 We’ve open-sourced MemLab. #MemLab is a JavaScript memory testing framework that automates leak detection and makes it easier to root-cause memory leaks. 1/2 https://t.co/vo6Gzv56ud — Engineering at Meta (@fb_engineering) September 12, 2022 Metaが展開しているFacebook、Fac

    JavaScriptのメモリリークを検出するフレームワーク「MemLab」、メタがオープンソースで公開
  • MSXのBSAVE形式バイナリデータの読み書きにバグ発見!?BSAVE・BLOAD命令の挙動を検証 - Gigamix Online

    MSX BASICのBSAVE命令はメモリの内容をバイナリーデータで保存する命令、BLOAD命令はバイナリーデータをメモリへ転送する命令ですが、一体どのくらいのメモリ容量が扱えるのか、知らなかったので調べてみました…と思ったらバグかもしれない場面に遭遇しました。 結論 BSAVE形式ファイルの仕様 BSAVE命令のテスト 結果 BLOAD命令のテスト 結果 バグではなく仕様でした なぜそうなるのか仮説 結論 BLOAD命令・BSAVE命令ともども、メモリの最大容量は65535バイトまで扱えます。 メインRAMの最大容量である64kB(65536バイト)以上のデータには対応しません。誤動作が発生します。 そういう動作をするのは仕様でした。 BSAVE形式ファイルの仕様 今一度MSXのBSAVE形式ファイルの仕様を確認します。 オフセット 容量 内訳 +0 1 BSAVE形式の明示(0xFEが

    MSXのBSAVE形式バイナリデータの読み書きにバグ発見!?BSAVE・BLOAD命令の挙動を検証 - Gigamix Online
  • Hexspeak - Wikipedia

    この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "Hexspeak" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2019年10月) Hexspeakとは、リートスピークと類似の、英語の変わった表記法の一種である。 プログラマは、メモリやデータに「未使用」や「異常データ」といった印をつけるために分かりやすいマジックナンバーを必要としており、この際にHexspeakが作り出された。数字の"0"をアルファベットの"O"に、数字の"1"をアルファベットの"I"に、数字の"5"をアルファベットの"S"に読み替えるといった方法を利用し、16進数の表記に使われる文字 (0123456789ABCD

    iww
    iww 2021/11/10
    16進数で書ける英単語。 DeadBeef系のやつ
  • fdisk -l shows 16 ram disks /dev/ram0 ... /ram15

    iww
    iww 2021/08/27
    ラズパイに /dev/ram* がたくさんある理由。 読んでもよくわからん
  • スワップの弁護:よくある誤解を解く

    (This post is also available in English.) この記事は In defence of swap: common misconceptions を 著者の Chris Down さんの許可 を得て Hiroaki Nakamura が日語に翻訳したものです。 原文のライセンス は CC BY-SA 4.0 であり、翻訳のライセンスも同じく CC BY 4.0 とします。 長文を読みたくない方への要約: スワップを持つことは正しく機能するシステムのかなり重要なポイントです。 スワップが無ければ、まともなメモリ管理を実現することは難しくなります。 スワップは一般的に緊急事態用のメモリを取得するためのものではなく、メモリの回収を平等に効率的に行うためのものです。 実のところ「緊急事態用のメモリ」は一般的に盛大に悪影響を及ぼします。 スワップを無効にすることは

    スワップの弁護:よくある誤解を解く
  • read(2) vs mmap(2) の迷信

    この記事は、シェルスクリプトの記事よりも前に読んだような気がする。同じくらい古い記事だけれど、ちょっと書いてみる。記事への反論はいくつか検索すると見つかって、たぶんみんな知っていることなのだと思うけれど、まとまって書かれている文章はないみたい。 tl;dr read(2) と mmap(2) の性能差に絶対的な回答はない。どちらか一方が常に高速だと主張している文章は、根拠が証拠とともに明確に書かれていない限り信用しないほうが良い。 メモリコピーのコストが高かった時代と、L1キャッシュが巨大になってメモリコピーのコストが低くなった時代と、SMPが一般的になってメモリのマッピング処理のコストが高くなった時代とで、この性能差は頻繁に入れ替わっている。少なくともスループットとレイテンシを分けないで分析できるものではない。 まず当該記事には技術的な間違いがいくつかある。 「mmap()はユーザランド

    iww
    iww 2021/04/22
    『100MBのバッファをスタックにとろうとしているのがとても気持ちが悪い』