var a = new double[7000,7000];
FillValue(a,3);
Wygląda na to, że .NET nie przypisuje żadnej pamięci do a
po wykonaniu pierwszego wiersza. Tylko podczas wykonywania połączenia FillValue
zjada pamięć. (czyli około 400 MB)dlaczego .net nie przydziela pamięci po zainicjowaniu tablicy 2d?
Czy ktoś może podać mi więcej informacji na ten temat? Myślałem, że a
jest wypełnione 0 po domyślnej inicjalizacji, w jaki sposób może nie mieć żadnej pamięci w ogóle?
W jaki sposób mierzysz, czy przydziela pamięć? –
@SethCarnegie Niestety, użyłem bardzo prymitywnego sposobu ... po prostu spójrz na menedżera zadań Windows .. i ustaw punkt przerwania, uruchom kilka razy w pętli. Jest to pamięć 400 MB na "wypełnienie", które jest łatwe do wykrycia. – colinfang
Może to być również spowodowane systemem operacyjnym. Zobacz "Kombinacja pamięci" http://blogs.msdn.com/b/b8/archive/2011/10/07/reducing-runtime-memory-in-windows-8.aspx –