問題タブ [gcallowverylargeobjects]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - どのように大きな配列を作成しますか?
与えられた
をr.GetBytes(...)
返し、Int64
それよりも大きい可能性のある空の配列を作成するにはどうすればよいですか?Array.zeroCreate
Array.init
Int32
Int32.MaxValue
c# - 65535^2 要素を超える 2d 配列 --> 配列次元がサポート範囲を超えています
128 GB の RAM を搭載した 64 ビット PC を使用しており、C# と .NET 4.5 を使用しています。私は次のコードを持っています:
私は知っていて、<gcAllowVeryLargeObjects enabled="true" />
それをtrueに設定しました。
多次元配列の要素数が 4294967295 を超えないのはなぜですか? 次の回答を見ましたhttps://stackoverflow.com/a/2338797/7556646。
gcAllowVeryLargeObjectsのドキュメントも確認したところ、次のコメントがありました。
配列の要素の最大数はUInt32.MaxValue (4294967295) です。
なぜこの制限があるのか 理解できませんか?回避策はありますか? .net の今後のバージョンでこの制限を削除する予定はありますか?
インテル® MKL を使用して対称固有値分解などを計算したいので、メモリ内にその理由の要素が必要です。
json - UnitTests の gcAllowVeryLargeObjects
私の C# アプリではgcAllowVeryLargeObjects
、大規模なデータセットで画像処理を行っているため、大量の RAM を使用しています。今、いくつかの UnitTests を書きたいと思っていgcAllowVeryLargeObjects
ます。
私の設定は、Newtonsoft.Json を使用して大きな 1D バイト配列を含む JSON ファイルを読み取ることです。私が最初に経験したエラーはObjectOutOfMemoryException
、ファイルをデシリアライズするときの典型的なものでした。ExceptionMessage は次のとおりでした:配列次元がサポートされている範囲を超えました。
私はそれを使用して管理しましたが<gcAllowVeryLargeObjects enabled="true"/>
、今では Newtonsoft.Json に問題はありません。しかし、UnitTest については、このランタイム パラメータを設定する方法がわかりません。うまくいけば、あなたの一人がアイデアを持っています。