пожалуйста, посмотрите на следующий код:
'Create array
Dim a(10000, 10000) As Integer
'Print memory of application and physical memory
Console.WriteLine(Process.GetCurrentProcess.PrivateMemorySize64)
Console.WriteLine(My.Computer.Info.AvailablePhysicalMemory)
'Do it twice again
Dim b(10000, 10000) As Integer
Console.WriteLine(Process.GetCurrentProcess.PrivateMemorySize64)
Console.WriteLine(My.Computer.Info.AvailablePhysicalMemory)
Dim c(10000, 10000) As Integer
Console.WriteLine(Process.GetCurrentProcess.PrivateMemorySize64)
Console.WriteLine(My.Computer.Info.AvailablePhysicalMemory)
For i As Integer = 0 To 10000
For j As Integer = 0 To 10000
a(i, j) = 0
Next
Next
Console.WriteLine(My.Computer.Info.AvailablePhysicalMemory)
и вывод в моей системе:
430125056
2466795520
839479296
2463166464
1273315328
2461618176
2065424384
Каждый инициализированный массив занимает около 400 МБ памяти в приложении, как и ожидалось,Но доступная физическая память уменьшается только на 400 МБ после заполнения одного массива значениями (диспетчер задач также показывает только 400 МБ, использованных после цикла for ...).
Я всегда думал, что инициализированный массив целых чисел занимаетвся необходимая память, потому что она заполнена 0. Какой смысл?