ラベル 32bit の投稿を表示しています。 すべての投稿を表示
ラベル 32bit の投稿を表示しています。 すべての投稿を表示

2015年5月5日火曜日

Firefox 32bit で OOM (out of memory) によるクラッシュを MemChaser で監視。一足先に公式の 64bit ベータ版をインストール。

0. 目次

 

1. グラフィックボード関係のエラーでクラッシュ

avcuf32.dll, xul.dll に関連したエラーによりクラッシュすることはなくなった。

最後まで頑固に残ったエラーは、nvwgf2um.dll と nvd3dum.dll 。どちらも NVIDIA に関連したものらしい。

SnapCrab_2015-04-25_00-54-21_No-0000 SnapCrab_2015-04-30_11-09-21_No-0000

これに対して、ドライバをクリーンインストールしてもどうにもならずお手上げ。 (+_+)

 

2. MemChaser でメモリの使用状況を監視する

上記エラーでSnapCrab_2015-05-05_00-14-02_No-0000クラッシュする状況は、

  • インストールしているアドオンの数は 70 程度。
  • 常に開いているウィンドウは最低 5 枚。
  • 開いているタブの数は 100 以上。
  • ピン留めしているタブは 40 程度。

(クラッシュしまくる Firefox 36 を何とか実用的に利用するための設定 より)

この状態で Google マップを開き、Earth モードにして 3D 表示させると、すぐにクラッシュ。これに対して、

SnapCrab_2015-05-02_20-26-16_No-0000確かにその通りで、アドオン MemChaser を用いてクラッシュする寸前のメモリ使用量を調べてみたら、約 3200 MB 前後。

(メモリ不足になる前に自動的に再起動してくれるアドオン、Prevent Out Of Virtual Memory Crashes では、残されたメモリも表示され認識しやすい。)

Firefox はメモリ使用量が 3.25GB を超えるとクラッシュするらしい。

OSPFv3がFireFox is using 3GB of RAM and becomes very slow and and it slows down the computer immensely. What's the deal?について記入したコメント によると、

Those black screens are Firefox purging memory. Firefox cannot exceed 3.25GB of memory without crashing so it goes into a self-harming strategy to keep running.

 

3. 32bit アプリケーションにおけるメモリの限界

これは 32bit アプリケーションの宿命。

64bitOSを使用しても使えるメモリは3GBまで?【32bitソフト制限】 | ハルパス によると、

Windowsの64bitOSを使用していても、「32bitのソフトが使用できるメモリ領域は3GBまで」って知っていましたか?

64bit Windowsを前提とした32bitアプリケーション延命法 ~ LAAオプションで32bitアプリケーションのメモリ不足問題を解消 | OPTPiX Labs Blog によると、

Windowsの場合、PCに4GB以上のメモリを搭載していても、通常、1個の32bitアプリケーションで利用可能なメモリ容量は約2GBです。

実際に簡単なプログラムを作って調べてみると、確保できるヒープメモリの総容量は約1.9GBでした

アプリケーションによっては、独自に仮想記憶のような処理を行って、32bitアプリケーションで2GBを超える大量のデータを扱えるようにしているものもありますが、そのような処理を全く想定せずに開発されたアプリケーションでは、後から独自の仮想記憶のような処理を追加するのは難しいものです。

例えば Photoshop は、64 ビット版 Windows における利点と制限(Photoshop CS4/Photoshop CS4 Extended) によると、

Photoshop CS4 のバージョン

Windows のバージョン

Photoshop が使用可能な最大メモリ容量

32 ビットバージョン

32 ビット版

1.7 GB

32 ビットバージョン

64 ビット版

3.2 GB

64 ビットバージョン

64 ビット版

コンピュータに搭載されているメモリすべて

 

Firefox のクラッシュレポート

自分のFirefox クラッシュレポート (about:crashes) を見ると、大半に

OOM

out of memory の文字が並んでいる。(@_@;

試しに、Cyberfox において上記環境でメモリ使用量を確認したら、4400 MB ほどになった。これでは Firefox がクラッシュするのは当たり前。(+_+

特に驚いたのは、Tab Data を用いて、どのタブがメモリを多く利用しているか調べてみたら、Google ドキュメントで作成していた文書が 500MB超え。(@_@;

 

4. Cyberfox と公式の 64bit 版 Firefox

a. Cyberfox

SnapCrab_2015-05-05_14-00-27_No-0000よって、自分のような環境では、32bit 版の Firefox は使えない。代わりに Cyberfox を利用せざるを得ない。

もしくは、以下の方法でなるべくメモリを消費しないようにする。

そして、Cyberfox を使うなら、必要に応じて見ているページを別ブラウザで開けるようにしておく。

 

b. Beta channel

SnapCrab_2015-05-05_14-01-50_No-0000ところで、公式の 64bit 版 Firefxo は次期バージョンから公開されるらしい。

Firefox 38でWindows向け64bit版はフェーズ1が完了 軽量インストーラへの統合が今後の課題 - Mozilla Flux によると、

Firefox 38では、「各国語版のFirefoxをダウンロード」のページにWindows向け64bit版のスタンドアローン型インストーラ(フルインストーラ)が公開されることになりそうだ(Firefox/Channels/Meetings/2015-03-31 - MozillaWiki)。

公開はもうすぐ。Mozilla Firefoxのバージョンの変遷 – Wikipedia によると、

38.0
ESR 38.0
リリース前(2015年5月12日予定[162] 正式版 リリース

リリースまでもうすぐなので、ベータ版をインストールしても問題ないかな。

SnapCrab_2015-05-05_00-34-50_No-0000

公式ベータ版の方が Cyberfox より UI のレスポンスが良い気がする。

 

c. Developer Edition

Developer Edition (aurora) は、現在のバージョン 39.0a2 で 64bit 版を利用できる。

「Firefox Developer Edition」に64bit版Windows向けのビルドが登場 - 窓の杜

Mozillaは2月27日、開発者向けにカスタマイズされた「Firefox」のテスト版「Firefox Developer Edition」の最新版となるv38.0a2を公開した。本バージョンでは、64bit版Windows向けのビルドが追加されている。

「Firefox Developer Edition」はアルファ版に相当する「Firefox Aurora」を置き換えるかたちで、昨年11月から提供されている。

SnapCrab_2015-05-05_01-01-32_No-0000

 

d. Relase channel

正式版がリリースされたら、

より、ダウンロードして、ベータ版から戻すことにしよう。

SnapCrab_2015-05-05_01-12-03_No-0000

 

5. Firefox の channel まとめ

channel
  1. Release channel
  2. Beta channel
  3. Developer Edition
version

2015年3月23日月曜日

RAMDA で OS 管理外のメモリ領域を RAM ディスクとして活用

1. 32 bit OS でメモリを有効活用したい

古いデスクトップPC には Windows 7 32 bit をインストールしてある。そして、無駄にメモリを 6G 積んでいたことをすっかり忘れてた。(+_+)

Windows TIPS:Windows OSでサポートされている最大物理メモリサイズは? - @IT によると、

多くの32bit Windows OSでは、OSの仕様上の制約により4Gbytes以上のメモリを利用できないが、実際のPCシステムではもっと少なく、… 3Gbytes程度までしか利用できない。

この理由は、4Gbytesのアドレス空間のうち、末尾の0.5Gbytes~1Gbytes程度が、グラフィックスデバイスなどによって占有されているためである。32bit Windows OSは物理アドレス空間の先頭から4Gbytesまでの領域しかアクセスできないので、このようになる。

 

2. RAMDA でOS管理外領域を RAMディスクに割当てる

RAMDA は、OS の管理外にあるメモリ領域を RAM ディスクとして活用できる。

窓の杜 - 【NEWS】電机本舗、無償で使えるRAMディスク作成ソフト「RAMDA」v1.2を公開 によると、

… 64bit環境の“Home Premium”エディションを利用している場合に、16GBを超えたメモリをOS管理外メモリとして活用できる機能が追加されているほか、32bit環境のOS管理外領域へRAMディスクとして割り当てられるメモリが最大32GBに拡張されている。

dnki.co.jp より、アンケートに答え、RAMDA をダウンロードし、インストールして、再起動。

RAMDA を起動し、RAM ディスク基本設定において、

  • J ドライブ指定 (コンピュータの直下を確認して、利用されてないドライブレターを選択すること)
  • 2048 MB (サイズ)
  • RAM-DISK の自動保存/リロードにおいて、以下にチェックを付けた。
    • リカバリ
    • バックアップ
    • Sync フォルダのみ, PC 終了時のみ

SnapCrab_No-0018

リカバリとバックアップの対象と、バックアップするタイミングは、保存したい対象の重要度によって決めれば良い。

 

a. PAE を有効化

次に、「高度な設定タブ」を開くと、PAE を有効にするよう促される。

SnapCrab_No-0014

PAE とは、物理アドレス拡張 – Wikipedia によると、

物理アドレス拡張(ぶつりあどれすかくちょう、Physical Address Extension)、略称、PAEインテル社のIA-32アーキテクチャで4GiB以上のメモリを扱う技術。

PAE の設定確認と、有効化の方法は以下の通り。

Windows7で物理アドレス拡張PAEが有効かどうかを確認する - 旧山pの楽しいお勉強生活 によると、

下の手順で、paeという項目を確認すればOK。
私の環境では項目自体が存在しませんでした。

1. スタートメニューをクリックします。
2. cmd<enter>と入力します。
3. コマンドプロンプトでbcdedit <enter>と入力します。
4. 「pae」という項目を確認します。

Windows OSでPAEを有効にするとNIソフトウェアがロードしない

物理アドレス拡張PAEを強制的に有効にする - @IT によると、

PAEを有効にするには、「bcdedit /set pae forceenable」を実行する。

 

b. OS管理外メモリの設定

PAE を有効にした後、RAMDA の「高度な設定」において、メモリの確保の仕方から「OS管理外メモリ」を選択。

ただし、OS管理外制御関連において、「OSに通知する」のチェックは付けない

OS管理外メモリ 12GBのRAM-DISKを作る「RAMDA」実験 | Windows 高速化,EeePC,ネットブック カスタマイズ・改造・便利なオプション紹介 によると、

RAMDAの設定を述べておく。
2000/XP系とVISTA/Windows7系ではかなり癖が違うようである。
OS管理外メモリの細かい設定はOSを確認し、OSごとに使える機能、使えない機能を誘導する必要があるようだ。
OS管理外メモリ時のオプション2つある。メモリの上限検出は文字通り、実装メモリの最大値を調べるもの。これは2000/XP系とVISTA /Windows7系のどちらでも使えそうである。問題は「OSに通知する」である。これはVISTA/Windows7系ではエラーになるようである。 OFFにする。これがポイントだ

SnapCrab_No-0010

設定後に再起動すると、RAMD-DRIVE (J:) が作成されたのが確認できる。

SnapCrab_No-0019

 

関連記事