У меня есть «'System.OutOfMemoryException» исключение для этого простого кода (10 000 * 10 000 матрицы), умноженного на себя:Из исключения памяти для матрицы
#time
#r "Microsoft.Office.Interop.Excel"
#r "FSharp.PowerPack.dll"
open System
open System.IO
open Microsoft.FSharp.Math
open System.Collections.Generic
let mutable Matrix1 = Matrix.create 10000 10000 0.
let matrix4 = Matrix1 * Matrix1
У меня есть следующее сообщение об ошибке:
System.OutOfMemoryException: An exception 'System.OutOfMemoryException' has been raised
Microsoft.FSharp.Collections.Array2DModule.ZeroCreate[T](Int32 length1, Int32 length2)
Microsoft.FSharp.Math.DoubleImpl.mulDenseMatrixDS(DenseMatrix`1 a, DenseMatrix`1 b)
Microsoft.FSharp.Math.SpecializedGenericImpl.mulM[a](Matrix`1 a, Matrix`1 b)
<StartupCode$FSI_0004>[email protected]() dans C:\Users\XXXXXXX\documents\visual studio 2010\Projects\Library1\Library1\Module1.fs:line 92
Stop due to an error
у меня есть поэтому 2 вопроса:
у меня есть ГБ памяти на моем компьютере 8 и в соответствии с моим с alculation 10 000 * 10 000 матрицы должна взять 381 МБ [вычисляются следующим образом:
10 000 * 10 000 = 100 000 000
целых чисел в матрице =>100 000 000 * 4 bytes (integers of 32 bits) = 400 000 000 => 400 000 000/(1024*1024) = 381 MB
], так что я не могу понять, почему существуетOutOfMemoryException
В более общем плане (это не тот случай, я думаю,), У меня создается впечатление, что F # interactive регистрирует все данные и, следовательно, перегружает память, знаете ли вы способ освобождения всех данных, зарегистрированных F # interactive без выхода из F #?
У вас в вашей машине есть сколько угодно * памяти *; помните, что дисковое пространство также является памятью. Чипы RAM - это просто быстрый способ кэширования дисковой памяти. У вас может быть 8 ГБ или .5 ГБ или 1000 ГБ физической памяти; это совершенно не имеет значения. Запущенная вами память - это * виртуальное адресное пространство для каждого процесса *, и это не имеет никакого отношения к тому, сколько у вас RAM или дискового пространства. –