여러가지 테스트 중인데,

32비트 기준임.

각 테스트간에 할당하고 메모리 확인후 해제 매번 시켜줌.


1. VB6 에서 2억개의 double형 동적메모리배열 할당가능.

(8바이트 1억개면 8억바이트로서 800MB가 정도가 되고, 2억개면 1600MB으로 32비트 제한인 2GB에 근접)

2. C++(MFC)에서 2억개의 double형 동적메모리배열 할당가능.(상동)

3. C# 에서 2억개의 double형 동적메모리배열 할당하려고 하면 out of memory 오류 뜸.

  테스트해보니, 1억개도 처음에는 되는데 두번째는 또 아웃오브메모리.

  혹은 작은양으로 살짝살짝 하다가 1억개정도 연속하면 괜찮기도 한데, 또 수틀리면 아웃오브메모리.

  존나 조심조심하고 GC.Collect 같은거 떡칠했는데도 그냥 다 씹고 VB6만도 못한 병신스런 메모리 관리수준을 보여줌.


아니 어떻게 된게 VB6보다 메모리 처리가 왜 그렇게 쳐 구린거임?

꼬라지보니 제한이 2GB도 아니고 걍 1GB에, 심지어 그걸 연속 할당과 할당해제를 못 버티고 아웃오브 메모리 쳐뱉음.


어떻게 기본자료형인 double형 하나 제대로 관리를 못하는거???

다른 자료형은 어떤지 모르겠지만, 아마 비슷할거라 생각한다.

어처구니 없어서 더 테스트도 못하겠어.


뭘 어째야됨?

VB6도 2억개 double형 할당 가능한데, C#은 1억개도 불안하면 어떻게 씀 대체???