タグ

ブックマーク / www.keicode.com (4)

  • ヒープの仕組み (Look Aside List, ルックアサイドリスト)

    この資料では Windows XP 以前のデフォルトであった、ルックアサイドリスト (Look Aside List, LAL) をフロントエンドアロケータとする、ヒープメモリの仕組みについてご説明します。 尚、Vista 以降では LAL ではなく、LFH (Low Fragmentation Heap) がデフォルトとなり、 またセキュリティ対策のためにヒープマネージャには大きな変更が加えられました。 これについては別の資料で書きたいと思います。この資料では特に断りが無い限り、ヒープと言えば LAL を利用するヒープのことを指しています。 ちなみに、はじめにお断りしておきますが、この資料は主にこちらの Advanced Windows Debugging とインターネット上の情報をもとに、 私が動作確認をして記述しました。 可能な限りデバッガで動作確認をしていますが、私の理解不足などが

    ヒープの仕組み (Look Aside List, ルックアサイドリスト)
  • .NET Framework デバッグ ~ JIT コンパイルの様子をみる

    前の資料の続きで、JIT コンパイルの状態をみてみましょう。 button1_Click でブレークしたところで、button1_Click メソッドと button2_Click メソッドのメソッドディスクリプタを確認します。 さて、まずは Form1 の EEClass を確認します。この方法は他のページで説明済みです。 0:000> !sos.name2ee exceptiontest1.exe ExceptionTest1.Form1 Module: 00382c5c (ExceptionTest1.exe) Token: 0x02000005 MethodTable: 00385a40 EEClass: 00381574 Name: ExceptionTest1.Form1 0:000> !sos.dumpmt -md 00385a40 EEClass: 00381574 Mod

    .NET Framework デバッグ ~ JIT コンパイルの様子をみる
  • ヒープに関する話題 - Web/DB プログラミング徹底解説

    VirtualAlloc 系ではページ単位でメモリを操作する。このため(アクセス権の設定の面で)柔軟であるが小さなメモリブロックの割り当てに向かない。一 方 HeapAlloc 系では、予めある程度 の仮想メモリ 領域を予約しておき、プログラムから要求がされ次第、その予約された領域からメモリを切り出してきてメモリブロックを確保する。小さなメモリブロックを多 数割り当てるにはこちらの方法のほうが効率が良い。Windows のヒープマネージャはこのような動作を実現できるように、プログラムと仮想メモリマネージャの間に入りメモリ割り当てを高速に行う。 DEPWindows XP SP2 から HeapAlloc によって割り当てられるメモリ (ページ) の属性が変わり、割り当てられるメモリブロックでは実行可能ではなくなった。もし実行しようとするとアクセス違反が発生する。このテクノロジを Data

    ヒープに関する話題 - Web/DB プログラミング徹底解説
  • Web/DB プログラミング徹底解説

    *.keicode.com について 2005年頃から個人的にソフトウェアの技術記事をまとめて、 当サイトに情報を掲載開始。その後、さまざまなテーマ毎に初心者向けの入門サイトなどをまとめてきました。 主な姉妹サイトとしては 「Python 入門」「Android 入門」 「Java 入門」「基礎からの IoT 入門」などがあります。 最近は YouTube チャンネル「IT なるほど TV」も開設し、動画を用いた技術解説も行っていくつもりです。 (なかなか更新できていませんが、やめたわけではありませんので、ぜひチャンネル登録をよろしくお願いします!) 当サイトのウェブホスティングについて 当サイトはブルーホストという米系のウェブホスティングを利用して運用しています。 参考までに書くと 2018年3月の実績では keicode.com ドメインの関連サイト合わせて、 月間約 25万 PV で

    Web/DB プログラミング徹底解説
  • 1