私はC#を初めて使用し、地震データを含む.sgyファイルを読み込もうとしています。私はUnplugged.SEGYとして知られているライブラリを見つけました。私のファイルは4.12Gbです。「mscorlib.dllで 'System.OutOfMemoryException'が発生しました」という最初の機会例外が発生し、プログラムが突然停止します。私はmscorlib.dllで 'System.OutOfMemoryException'タイプの最初のチャンス例外が発生しました
答えて
は、単一のオブジェクトのインスタンスを扱うことができない64ビット32とビットとして、アプリケーションの実行を作ってみましょう64ビットプロセスとしてアプリケーションを実行しています:これは私のコード
using System;
using Unplugged.Segy;
namespace ABC
{
class abc
{
static void Main(String[] args)
{
var reader = new SegyReader();
ISegyFile line = reader.Read(@"D:\Major\Seismic.sgy");
ITrace trace = line.Traces[0];
double mean = 0;
double max = double.MinValue;
double min = double.MaxValue;
foreach (var sampleValue in trace.Values)
{
mean += sampleValue/trace.Values.Count;
if (sampleValue < min) min = sampleValue;
if (sampleValue > max) max = sampleValue;
}
Console.WriteLine(mean);
Console.WriteLine(min);
Console.WriteLine(max);
}
}
}
EDIT私を助けてくださいですメモリが2GBを超える場合。
間違っています。 32bitプロセスの場合、メモリの総量(単一オブジェクトではない)は2GBより大きいことはありません。単一オブジェクトの場合、両方のアーキテクチャで最大サイズは2GBです。 64bitプロセスでは最大許容メモリは1tb、http://stackoverflow.com/questions/200348/is-there-a-memory-limit-for-a-single-net-process –
@ M.kazemAkhgary 32bitプロセスは使い尽くす可能性がありますx64マシンでは4GBまでです。(そうでないと、この回答がきわめて誤解を招くことがあります) –
64ビットで実行しようとしましたが、出力が得られず、代わりにPCがハングアップしています。あなたはコードを見て、何か間違っているかどうか教えていただけますか?また、Windows 8で4Gb RAM 64ビットOSを使用しているこのアプリケーションを実行している場合。 –
- 1. タイプの最初のチャンス例外 'System.Resources.MissingManifestResourceExceptionのが' のMscorlib.dllで発生した[C++/CLI]
- 2. 'System.IO.FileLoadException'タイプの最初のチャンス例外が発生しました
- 3. 「System.Data.DBConcurrencyException」タイプの最初のチャンス例外が発生しました
- 4. タイプの最初のチャンス例外「System.ArgumentExceptionのは」がmscorlib.dllで
- 5. タイプ 'System.Runtime.Serialization.SerializationException'の例外がmscorlib.dllで発生しました
- 6. タイプ 'System.Data.SqlClient.SqlException'の例外はmscorlib.dllで発生しましたが、ユーザコード
- 7. System.Core.dllで 'System.Security.Cryptography.CryptographicException'型の最初のチャンス例外が発生しました
- 8. 「System.InvalidCastException」タイプの最初のチャンス例外が何者のファイルでも発生しました
- 9. mscorlib.dllで未処理の例外 'System.IO.IOException'が発生しました
- 10. WCFタイムアウト例外! 'System.TimeoutException'型の例外がmscorlib.dllで発生しました
- 11. itextsharp.dllで 'System.OutOfMemoryException'タイプの例外が発生しましたが、ユーザコードで処理されませんでした
- 12. ntdllの最初のチャンス例外0XC0000005 Windbg
- 13. タイプ 'System.OutOfMemoryException'の例外がディスパッチャー内でスローされました
- 14. エラーメッセージ:mscorlib.dllで 'System.FormatException'の未処理の例外が発生しました。#
- 15. mscorlib.dllで 'System.ComponentModel.Win32Exception'型の未処理の例外が発生しました
- 16. Redis .StoreAll mscorlib.dllで 'System.StackOverflowException'の未処理の例外が発生しました
- 17. C# 'System.FormatException'の未処理の例外がmscorlib.dllで発生しました
- 18. mscorlib.dllでSystem.StackOverflowException型の未処理例外が発生しました
- 19. タイプ 'System.OutOfMemoryException'の例外がスローされました
- 20. タイプ 'System.OutOfMemoryException'の例外がスローされました
- 21. タイプ 'System.OutOfMemoryException'の例外がスローされました。WEB API
- 22. PresentationFramework.dllのSystem.NullReference例外の最初のチャンス例外?
- 23. Microsoft.EntityFrameworkCore.dllで 'Microsoft.EntityFrameworkCore.DbUpdateException'タイプの例外が発生しました
- 24. Microsoft.AspNet.Identity.EntityFramework.dllで 'System.ArgumentNullException'タイプの例外が発生しました
- 25. タイプ 'System.outOfmemoryExceptionがスローされました'例外
- 26. xxx.exeの0x782260ecで最初の例外が発生しました。0xC0000005:アクセス違反
- 27. 最初の実行時にsos.threadsでwindbg例外が発生しました
- 28. 例外 'System.OutOfMemoryException'がスローされました
- 29. 例外:System.OutOfMemoryExceptionがスローされました
- 30. 'MySql.Data.MySqlClient.MySqlException'タイプの例外が発生しました
私はあなたがすでにx64を実行しているので、あなたはすでにファイルをロードしたり、まともな量のRAMを取得する必要があるので、ライブラリの作者に依頼する必要があります(16GBから始める必要があります。そのようなデータ量で作業してください)。 –