掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的配列でメモリー不足の回避 (ID:150342)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
私もやってみました. 動的配列は 512 x 512 x 512 で,グローバル変数にしました. この配列を 3 つ作成しました. 搭載メモリは 32 GB です. 結果,プロセスの使用メモリとしては 約 4 GB となりました.非常に時間がかかりました. 配列を 4 つにするとメモリ不足になりました. 変数を確保,操作する際,特に配列や TStringList 等は,作業用に多くのメモリを使用します. 今回は物理メモリ 32 GB のほとんどと,仮想メモリも 54 GB 以上使用していました. これが実際に必要なメモリ量かも知れません. 動的配列はポインタですから,4 GB というのは,ポインタとしての確保量かも知れません. 配列要素に,実際にデータを格納すると,その分のメモリが必要です. 多分,配列としては確保できても,実用にはならないのではないか,思っています ( 未確認です ). ところで,現在の気象情報は,位置として,緯度,経度,高度を使用する 3 次元データです. スーパーコンピュータを使用していますが, スーパーコンピュータ 富岳の場合,そのメモリは 4.85 PiB ( ペビバイト ) です. 1 PiB は 2 の 50 乗 バイト ( = 1,125,899,906,842,624 バイト ) です. これなら,今回の配列も全く問題ありませんね.😀 ただし,使用可能なコンパイラは Fortran, C, C++ 等です.Delphi はありません. 昔,まだ PC のメモリが少ない頃,2 次元配列を使用する計算で, 行単位でディスクから配列データを読み書きして計算したことがあります. 気が遠くなるほど時間がかかりました . コンピュータ関係の雑誌に,巨大行列 (配列) の計算方法の記事があり,それを参考にしました.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.