10台近くに入れて問題なく動作していたDelphi自作ソフトを新しいパソコンに入れたところ、処理を重ねる内に「このコマンドを実行するのに十分な記憶域がありません」とエラーメッセージがでたりします。
いろいろ試行錯誤したのですが、パソコンのスペック(実装メモリ、HDD、仮想メモリ)はこれまでで最高のものであり、また、実際の使用量をモニターしても不足しているようには思えません。
googleで、「このコマンドを実行するのに十分な記憶域がありません」「 Delphi」をキーワードに検索してみると、結構同じような事例があるように思いますが、有効な解決策は示されていません。
http://www.google.co.jp/search?hl=ja&q=%E3%81%93%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AB%E5%8D%81%E5%88%86%E3%81%AA%E8%A8%98%E6%86%B6%E5%9F%9F%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93+Delphi&lr=
どなたか良い解決方法があれば教えていただけませんでしょうか。OSの再インストールでうまくいったよのような情報でもかまいませんし、あるいは、同じような現象を体験したというだけでもかまいませんのでよろしくお願いします。
Delphi6 Personal
WinXP Professional SP3
以下、箇条書きでまとまりありませんが、追加情報を書きます。
●ソフトはIEを操作してサイトを表示したり、例えば、googleでの検索結果を取り込んだりするような処理を実行
●ソフト起動時からいきなり使えなくなることはなく、処理を重ねるうちに使用不能になるが、これまでの使用実績に比べると問題にならないぐらいの処理回数段階で発生
●発生する負荷状態は一定していない
●エラーは「xxx.create」のような部分で発生している模様
●FastMMも導入していますが、エラーが発生してもメモリリークは検出されない
●このエラーが発生した場合には次のような現象がでますが、かならずそうなるわけでもない
■自作ソフトのメニュー数が減少(一部のメニューが表示されなくなる)
■マウスの右クリックでメニューがでない
■エクスプローラが開かない、開いても内容が表示されない
■タスクマネージャーが開かない、開いてもタブ数が少なかったり、内容が表示されない
■マウスは移動するが、多くの対象に対してクリックしても、何もおきない
■自作ソフト/IEウインドウ等、操作可能であるものを終了すると、クリック機能等は回復する
●Windows2000では発生していない
●WindowsXP Home Edition SP3では発生していない
●WinXP Professional SP3では、これで3回目だが、過去2回は問題なく動作していた
■この3回分のパソコンは知人の自作パソコンですが、CPUはすべて共通。
■問題なく動作したうちの1回は今回のエラーが発生しているものとハードディスクが違うだけの構成(CPU冷却能力不足で筐体変更)とのこと
とりあえずこんな感じですが、症状もあまり一定しないです。個人的には最後の記述のようにほとんど構成が同じマシンなのに片一方だけで起こっているというので???状態です。
よろしくお願いします。
その問題のアプリはどんな処理をするものなのかな?
そのアプリを使用中にメモリ使用量が増えることはタスクマネージャで確認したの?
ハード構成が同じでも、常駐ものとか同時に動いてるアプリの種類は違うんじゃないの?
以下のような事例があった記憶があります。
どうでしょうか?
メモリをかなり食う処理発生
↓
メモリが少ないマシンではスワップが発生
↓
ディスクの容量が少ない、またはスワップ領域が少ない
↓
エラー発生
???さん、Manbonさん、レスありがとうございます。
常駐ものとか同時に動いているアプリは基本的に同じかむしろ少なく、バージョンが違うのかもしれないというぐらいです。実際のPCは自作ソフト以外は、まだ、OfficeのExcell、AcrobatReader、7zip、Norton、ZoneAlarm等しか入れておらず、これらはバージョンはさまざまかも知れませんが、以前の構成が同じPCにも入れていましたし、他のPCにも入っています。
パソコン構成、タスクマネージャーでのメモリ状況例を以下に示します。
●現状の動作確認状況
■自作ソフト動作良好
CPU Athlon 800MHz
RAM 512MB
HDD 8.46GB
空き容量 1.73GB
仮想メモリ 初期サイズ 768MB 最大768MB
OS Windows 2000 SP4
■自作ソフト動作良好
CPU Pentium4 1.9GHz
RAM 512MB
HDD 17.5GB
空き容量 3.5GB
仮想メモリ 初期サイズ 768MB、最大1536MB
OS Windows XP HomeEdition SP3
■自作ソフト動作不良
CPU Athlon XP 1900+ 1.59GHz 2個搭載
RAM 1GB
HDD 112GB
空き容量 99.3GB
仮想メモリ 初期サイズ 3072MB 最大サイズ 3072MB
●メモリ状況(細かい部分は厳密ではありません)
■ほぼPC起動のみ
コミットチャージ
合計 177MB
制限値 4094MB
最大値 179MB
物理メモリ
合計 1048MB
利用可能 782MB
システムキャッシュ 158MB
カーネルメモリ
合計 38MB
ページ 29MB
非ページ 9MB
■自作ソフト起動
コミットチャージ
合計 203MB
制限値 4094MB
最大値 205MB
物理メモリ
合計 1048MB
利用可能 760MB
システムキャッシュ 185MB
カーネルメモリ
合計 41MB
ページ 32MB
非ページ 9MB
自作ソフト 32MB
■エラー発生時(IEの表示、表示されたページ内容取得処理を繰り返す、IEはほぼ非表示)
コミットチャージ
合計 305MB
制限値 4093MB
最大値 307MB
物理メモリ
合計 1048MB
利用可能 652MB
システムキャッシュ 229MB
カーネルメモリ
合計 46MB
ページ 36MB
非ページ 10MB
自作ソフト 37MB
IE 114MB
■自作ソフト/IE 終了
コミットチャージ
合計 173MB
制限値 4093MB
最大値 307MB
物理メモリ
合計 1048MB
利用可能 780MB
システムキャッシュ 241MB
カーネルメモリ
合計 45MB
ページ 35MB
非ページ 10MB
VRAMはどうなってる?
KHE00221さん、レスありがとうございます。
上述の3台のマシンを今後、上から順番にPC1、PC2、PC3と呼ぶことにします。
VRAMはそれぞれのマシンで次の通りです。
PC1 : 8MB
PC2 : 64MB
PC3 : 64MB
動作不良がPC1ならVRAM足りないだけだと思うけど・・・
PC3 の CPU を 1個にしたらどうなるかな?
KHE00221さん、レスありがとうございます。
>>PC3 の CPU を 1個にしたらどうなるかな?
現在、工具があまりそろっていないのと、今週末は時間が取れません。
私でもできるようでしたら、来週にでも結果は載せたいと思います。
初心者の意見で恐縮ですが・・・。
自分も先ほどこのエラーが出ました。
白紙Canvasへのフォントの360度回転の仮描画のループ処理で、
「この処理を行うにはメモリが足りません」
と出ました。
環境はWinXP SP3 Delphi3&TurboDelphi2006(無償版)です。
CanvasのクリアにTBitmap.Create;を使っていたのですが、
原因はBitmap.Freeの記述忘れでした。^^;;
そこで思ったのですが、
開放し忘れたメモリや、バグ等でのループで蓄積した開放されなかったメモリがあふれて、
オーバーフロー(?)を起こすのではと思ったのですが・・・
以前も、画像データベースソフトを作った時に、
データベースのループ処理で同じエラーが出ました。
その時は何も考えずに、とりあえず「再起動」ボタンを追加して逃げましたが^^;。
どれも繰り返し処理でのエラー、と共通してるので、
もしかしたらと思った次第です。
特定の環境での発生では無いので、
的外れ的な感も無きにしもあらずですが^^;
もし参考になれば幸いです。
X「この処理を行うにはメモリが足りません」ではなく、
○「このコマンドを実行するのに十分な記憶域がありません」
の書き違いでした^^;。
Delphi大好きさん、レスありがとうございます。
>>開放し忘れたメモリ
もともと、LeakCheckerを導入していて、一応メモリーの開放し忘れはチェックはしていました。
http://hp.vector.co.jp/authors/VA015850/delphi/fragments/LeakChecker.html
さらに、メモリのリークチェックだけでなく、メモリの断片化問題も改善してくれるらしいFastMMを入れてみたんですが、残念ながら解決しませんでした。
http://mrxray.on.coocan.jp/Others/UsageFastMM.htm
LeakCheckerを使ったことはないのですが、
例えば、以下はメモリーリークになりません。
procedure TForm1.Button1Click(Sender: TObject);
begin
TButton.Create(Self);
end;
フォームの破棄で、自動的に破棄してくれます。
引数をnilにすると、メモリーリークします。
目に見えない開放し忘れがあるのではないでしょうか?
私もDelphi 6Personalで自作ソフトを作成していますが同じ経験があります。
原因を追及するほど、知識が有りませんので、
メモリーの解放関係をチェックして異常がないのでもうお手上げかと思っていて、
たしか、どこかでHDDのエラーが考えられると書いてあったので
HDDのプロパティのツールでエラーチェックし、
エラーは復元としてやって直ったような気がします。
当てになりませんが、プログラムの変更などしませんでした。
その後でていません。
ofZさん、武田さん、レスありがとうございます。
ofzさんのご指摘内容、LeakCheckerを過信してはダメということで非常に興味深い内容ですね。
武田さん、こちらも非常に興味深いご指摘です。今、また別の知人のところで、Dell製Note(OS XP Professional SP3)に自作ソフトを入れてみたところ、問題なく動作しています。これで、たぶん、OSの違いによるという一番恐れていた原因はなさそうに思います。
そして、ご指摘のHDDの不具合の原因説、今、出先なのでトラブルシューティングはできないのですが、なんとなくビンゴのように思います。知人はたくさんのパーツストックを持っており、それらを組み合わせて作ってもらったのですが、OSはライセンス認証なので、HDDフォーマット→再インストールしているはずですし、今一度確認が必要ですが、CPUは間違いなく同じなのですが、HDDは別のものが搭載してある可能性はあると思います。
>>HDDは別のものが搭載してある可能性はあると思います。
これ、自分の中での認識が混乱していましたが、最初の投稿時点で知人に確認していたようです。
>> ■問題なく動作したうちの1回は今回のエラーが発生しているものとハードディスクが違うだけの構成(CPU冷却能力不足で筐体変更)とのこと
大変失礼しました。
が、解決への期待は大きくなりました。
途中経過を載せておきます。
●HDDのエラーチェック
気持ち程度繰り返し処理の負荷が伸びたのではと思われましたが、残念ながら、結局、エラー発生となりました。
●HDDのデフラグ
エラーチェックに連想を得て、デフラグをしてみましたが、これもエラー発生となりました。
現象の絞り込みができたので報告します。
問題となる現象は自作ソフトから操作しているIE6でのウインドウのオープン/クローズ繰り返し時のIEの使用メモリ増加のPCマシン毎の違いから来ていました。
すでにIE6のウインドウがあり、さらに別の新規ウインドウを開いて、その新規ウインドウのみを閉じる動作をさせたときに違いがでます。既存のIE6ウインドウがない状態から、新規ウインドウを開いて、閉じる場合は、どのマシンでもiexplore.exeのプロセス自体が開放され、メモリ使用量もクリアされます。実使用においては、既存のIE6ウインドウがある状態での使用になります。
実際例を示します。次の投稿で示すテストプログラムを実行し、IE6のメモリ使用量をモニターしました。IE6で開いたのは、ローカルディスクにおいた10kB程度のテキストファイルの拡張子を'.html'に変更したもの(テスト.html)です。テスト.htmlを1つ開いておいた上で、プログラムにより新規にテスト.htmlのオープン/クローズを繰り返しました。
なお、保存しているページの新しいバージョンの確認は、すべてのマシンで「自動的に確認する」です。
●PC1 : 自作ソフト実行時問題なし
IE version: 6.0.2800.1106 更新バージョン : SP1; Q823353;
200回目 12.34 MB
100回目 12.16 MB
75回目 12.23 MB
50回目 12.18 MB
10回目 12.13 MB
1回目 11.89 MB
●PC2 : 自作ソフト実行問題なし
IE version: 6.0.2900.5512.xpsp_3_gdr.090206-1234 更新バージョン:SP3;
100回目 16.75 MB
75回目 16.18 MB
50回目 15.54 MB
10回目 14.51 MB
1回目 14.06 MB
●PC3 : 自作ソフト実行NG - 記憶域不足エラー
IE version:6.0.2900.5512.xpsp_sp3_gdr.090206-1234 更新バージョン:SP3;
75回目 34.05 MB
50回目 30.50 MB
10回目 24.66 MB
1回目 23.22 MB
※80回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
※PC1とPC2の試行回数が違うのには特に他意はなく、メモリ使用量が減少する場合もあるのだが、PC1の100回目がそうであったので、200回目を参考程度に掲載
■上記のテスト結果からすると、PC2は自作ソフトでの実際使用で不具合が現れていないのは、単に繰り返し回数が許容範囲内に収まっているからだけかも知れません。ただ、実際のサイトへ接続した場合には、PC3だとメモリ使用量の増加の仕方がかなり目立ちますが、PC2では目立ちません。また、今回のテスト時でもPC3は不具合を起こしてますが、トータルのメモリ使用量としては問題ある大きさには思えません。
次の投稿にテストプログラムソースを載せますので、みなさんの環境ではどうなのか教えていただけますと幸いです。よろしくお願いします。
IEオープン/クローズに伴うメモリ使用量モニターテスト方法
IE7はシングルタブにしたり、その他にも設定が必要となりますのでIE6でテストしてください。
手順
1 TButton:2個、TLabel:1個をForm上に配置
2 Unit1.pasを丸ごと以下のソースコードに変更
3 Button1、Button2のOnClickイベントを関連づけてコンパイル
4 適当なサイズのテキストファイルの名称を拡張子の変更も含めて'テスト.html'としてアプリケーションと同じフォルダ階層に置く
5 テスト.htmlをまず一つ開いておく
6 テストプログラム起動
7 Button1クリックでテスト開始(1回目は少し時間がかかるようです。)
8 Button2クリックで終了し、その時点でIE6のメモリ使用量をモニターした'log.txt'が開きます。
※ 実行時にIE6のオープン/クローズを見たい方は 'objIE.Visible:=False;'の部分をTrueにしてください。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ComObj,TlHelp32,PSAPI,ShellAPI;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
TryCount:Integer;
BaseDirectory:String;
forAbort:Boolean;
procedure SaveLog(sIEMem:String);
procedure SaveIEMemory;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SaveLog(sIEMem:String);
var
s,TxtInFile:String;
slTxtIn:TStringList;
begin
TxtInFile:=BaseDirectory+'log.txt';
slTxtIn:=TStringList.Create;
if FileExists(TxtInFile) then begin
slTxtIn.LoadFromFile(TxtInFile);
slTxtIn.Insert(0,'');
end;
s:=Format('%3S回目 %10S',[IntToStr(TryCount),sIEMem]);
slTxtIn.Insert(0,s);
slTxtIn.SaveToFile(TxtInFile);
slTxtIn.Free;
end;
procedure TForm1.SaveIEMemory;
var
ProcessID:DWORD;
ListHandle,hProcess:THandle;
sExeName:String;
Flag:Boolean;
Pr:TProcessEntry32;
MemInfo:TProcessMemoryCounters;
function UnitConv(MemIn:Cardinal):String;
var
Mem:Double;
begin
Mem:=MemIn;
if MemIn<1024 then begin
Result:=FormatFloat('#,##0 B',Mem);
end else begin
Mem:=Mem/1024;
if Mem<1024 then begin
Result:=FormatFloat('#,##0 KB',Mem);
end else begin
Mem:=Mem/1024;
Result:=FormatFloat('#,##0.00 MB',Mem);
end;
end;
end;
begin
ListHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if ListHandle<>-1 then begin
try
Pr.dwSize:=sizeof(TProcessEntry32);
Flag:=Process32First(ListHandle,Pr);
while Flag do begin
sExeName:=ExtractFileName(Pr.szExeFile);
try
if UpperCase(sExeName)<>'IEXPLORE.EXE' then Continue;
ProcessID:=Pr.th32ProcessID;
FillChar(MemInfo,SizeOf(MemInfo),0);
hProcess:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, ProcessID);
try
if hProcess>0 then begin
MemInfo.cb:=SizeOf(MemInfo);
if GetProcessMemoryInfo(hProcess,@MemInfo,SizeOf(MemInfo)) then begin
SaveLog(UnitConv(MemInfo.WorkingSetSize));
Break;
end;
end;
finally
CloseHandle(hProcess);
end;
finally
Flag:=Process32Next(ListHandle,Pr);
end;
end;
finally
CloseHandle( ListHandle);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
sURL,sFileName:String;
objIE:Variant;
begin
forAbort:=False;
//テストアプリディレクトリー情報
BaseDirectory:=ExtractFilePath(Application.ExeName);
sURL:=BaseDirectory+'テスト.html';
TryCount:=1;
for i:=0 to 1000 do begin
Application.ProcessMessages;
Label1.Caption:=IntToStr(TryCount)+'回目試行中';
//ESCキーで中断
if GetAsyncKeyState(VK_ESCAPE)<>0 then Break;
//ボタンによる中断
if forAbort then Break;
//IE操作オブジェクト作成
objIE:=Createoleobject('InternetExplorer.Application');
objIE.Visible:=False;
try
objIE.Navigate(sURL);
while objIE.busy do Application.ProcessMessages;
while objIE.readyState<>4 do Application.ProcessMessages;
finally
objIE.Quit;
objIE:=Unassigned;
Sleep(500);
end;
if TryCount=1 then SaveIEMemory;
if (TryCount mod 5)=0 then SaveIEMemory;
Inc(TryCount);
end;
Label1.Caption:=IntToStr(TryCount)+'回目終了';
sFileName:=BaseDirectory+'log.txt';
ShellExecute(Handle,'open',PChar(sFileName),'',PChar(ExtractFilePath(Application.ExeName)),SW_SHOW);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
forAbort:=True;
end;
end.
IE6のバージョンの記述ミス訂正
PC2とPC3は同じで、PC3の方が正しいです。
IE version:6.0.2900.5512.xpsp_sp3_gdr.090206-1234 更新バージョン:SP3;
IEのメモリリーク問題
http://p2b.jp/index.php?UID=1131336575
ひょっとしてこれの事ですかね。
IE6までらしいので、バージョンあげればそれで解決しそうです。
こういう問題はプログラムから修正できませんから、
周知してもらってバージョンあげてもらうしかないと思います。
IEエンジン使うのならIEのバグは仕方ない事とあきらめるしかないと思います。
[MS07-033] Internet Explorer 用の累積的なセキュリティ更新プログラム
http://support.microsoft.com/kb/933566/
で修正されたみたいです。
Windows XP ベースのコンピュータで JScript スクリプトを使用する Web ページを表示すると、Internet Explorer 6 でメモリ リークが発生する
http://support.microsoft.com/kb/929874/
http://d.hatena.ne.jp/zorio/20070626/1182875782(引用)
monaaさん、レスありがとうございます。
また、
>>JScript スクリプトを使用する Web ページを表示すると、Internet Explorer 6 でメモリ リークが発生する
に関しましても、私のテストに使用しましたのが、単なるテキストファイルの拡張子を変更したものなので該当せずと思われます。
>>IEエンジン使うのならIEのバグは仕方ない事とあきらめるしかないと思います。
おっしゃられるように、Delphiそのものが原因となる現象ではなさそうではありますが、まだ、問題現象が出たマシンが1台のみであり、IE6そのものが原因かどうかも不確かなのですっきりせず、もう少し突き詰めたいと思っています。
あちゃ、違うんですね。
もちろん、周知のバグでないなら特定したほうがよろしいかと思います。
残念ながら環境依存性が高いようなのでお役には立てなそうです。
では、objIE.Quit で抜ける前に、
objIE.Navigate('about:blank');
を実行してから抜けるとか、
objIE.Navigate('about:blank'); // (1)
// (1)のローディング待ち
objIE.Navigate(sURL); // (2)
// (2)のローディング待ち
(実際の処理)
objIE.Navigate('about:blank'); // (3)
// (3)のローディング待ち
objIE.Quit;
のように、"about:blank" でサンドイッチしてみてはどうでしょう?
monaaさん、DEKOさん、レスありがとうございます。
DEKOさんのご提案に沿ってプログラムを変更してテストしてみました。また、PC3については、sURLそのものを'about:blank'にしてのテストもしました。
予め開いておくファイルはすべて前回と同じローカルディスクにおいた10kB程度のテキストファイルの拡張子を変更したものです。
●PC1 : 自作ソフト実行時問題なし
200回目 12.43 MB
100回目 12.17 MB
75回目 12.28 MB
50回目 12.24 MB
10回目 12.25 MB
1回目 11.96 MB
●PC2 : 自作ソフト実行問題なし
200回目 19.13 MB
100回目 16.57 MB
75回目 15.91 MB
50回目 15.25 MB
10回目 14.22 MB
1回目 13.89 MB
●PC3 : 自作ソフト実行NG - 記憶域不足エラー
75回目 30.63 MB
50回目 28.22 MB
10回目 24.47 MB
1回目 23.36 MB
※前回と同じ80回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
元々のテストプログラムでsURLそのものを'about:blank'にしてのPC3のみのテスト
●PC3 : 自作ソフト実行NG - 記憶域不足エラー
75回目 29.68 MB
50回目 27.52 MB
10回目 24.11 MB
1回目 23.26 MB
※同じ80回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
■1回のみのテストですが、メモリ使用量が若干減ったような感じはありますが、現象そのものの回避には至りませんでした。
なお、テストはPC再起動直後に実施していますが、PC3の不具合がすべて80回目の試行時に発生という結果になりました。
...ダメでしたか。お役に立てずにすみません。
"このコマンドを実行するのに十分な記憶域がありません"
が出るアプリケーションはメモリリークしまくっているものが多いのですが、
今回の件はそれに該当しないようです。
そのほかの要因でこのエラーに遭遇したのは私が知る限り、
・メモリを多く積んだPCで"仮想メモリなし"にしてあった。
・仮想メモリの位置に軽微なHDD故障があった。
この2点があります。
PC3の仮想メモリは大きめに取ってあるようなので、
・256MBとかで試してみる。
・他のドライブに仮想メモリを取ってみる。
一度コレを試してみてもいいかもしれませんね。
DEKOさん、レスありがとうございます。
とても助けになっており感謝しています。
>>・仮想メモリの位置に軽微なHDD故障があった。
最初の投稿時点では、PC3への3回目のライセンス認証待ちOSインストールだったのですが、現在は4回目になってます。もう少し今の状態で調べておけるなら調べておきたいということもあり、HDDの交換はしていません。が、大変心強いご指摘です。
>>・256MBとかで試してみる。
アドバイス頂いた仮想メモリに関する試行は、後だしのようで心苦しいですが、問題現象絞りこみ前の自作ソフトでは、ご提案に近い試行をして見ました。
ただ、仮想メモリは増やす方と、まったく使用しないという状況を試したと記憶しており、ご提案のような意図を持った256MBとかはやっておりませんでした。
>>・他のドライブに仮想メモリを取ってみる。
HDDは1つなのですが、2つのパーティションで、二つのドライブとなっており、問題現象絞りこみ前の自作ソフトでは試行はしていました。
今回、テストプログラムで実行してみたところ、少し変わった結果になりました。テストプログラムのソースは最初に搭載したものです。
※ドライブはCとDで、今までに通常使用していたのはCドライブです。
※以下テストした順番に結果を示します。
PC3
Cドライブ 仮想メモリ 初期256MB 最大256MB
80回目 22.52 MB
75回目 21.86 MB
50回目 18.29 MB
10回目 12.41 MB
1回目 10.99 MB
※81回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
※初めて80回目以外での発生
PC3
Dドライブ 仮想メモリ 初期256MB 最大256MB
75回目 22.35 MB
50回目 18.75 MB
10回目 12.87 MB
1回目 11.41 MB
※80回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
※事前に一つ開いておく'テスト.html'がテスト終了後の気がついた時には二つ開いており、条件が違ったかと再度テスト
PC3
Dドライブ 仮想メモリ 初期256MB 最大256MB
75回目 34.09 MB
50回目 30.57 MB
10回目 24.61 MB
1回目 23.28 MB
※80回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
※仮想メモリ256MBでのテストでは、IE6のメモリ使用量が減少するのかと思ったのに、元のレベルに戻っていたので、再度テスト
PC3
Dドライブ 仮想メモリ 初期256MB 最大256MB
365回目 65.10 MB
300回目 58.11 MB
200回目 47.34 MB
100回目 36.56 MB
75回目 33.76 MB
50回目 30.23 MB
10回目 24.36 MB
1回目 22.98 MB
※370回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
PC3
Dドライブ 仮想メモリ 初期256MB 最大256MB
75回目 34.12 MB
50回目 30.63 MB
10回目 24.65 MB
1回目 23.19 MB
※80回目の試行時に「このコマンドを実行するのに十分な記憶域がありません」エラー発生
※この後、Dドライブでの再試行、そして、Cドライブで仮想メモリ 3072MB、256MBなどを少し実施しましたが、初期のIE6メモリ使用量は23MB程度で、11MB程度のケースは再現されませんでした。
■一度のみですが、大幅に80回の壁を越えた結果が得られたこと、IE6のメモリ使用量レベルが変化した状態も現れたこと、と現象が広がったようです。
これについては、もう少し試行してみます。また、本当に別のHDDに仮想メモリを確保するというのもやってみたいと思います。
ツイート | ![]() |