Hei,
Jeg benytter VB.NET til å utføre Monte Carlo-simuleringer (finans). Jeg vet ikke hvor godt du kjenner til dette, men i bunn og grunn er dette en måte å gjøre MANGE eksperimenter der vanlige statistiske / matematiske metoder ikke strekker til.
Uheldigvis sliter jeg med feilmeldingen:
"Exception of type 'System.OutOfMemoryException' was thrown."
Skyldes dette kun at maskinene har gått tom for RAM eller er det annet som ligger bak?
Tenker f.eks. på 32bit vs 64bit begrensinger...?
Holder det at jeg kjøper et (64 bit) system med masse RAM så er problemet løst?
Nedenfor er en enkel kode (med en uendelig loop) for å illustrere problemet.
Private Sub testMemory()
Dim RandomClass As New Random()
Dim upper As Integer = 1000000
Dim random(upper) As Integer
Dim i As Integer = 0
Do
If i > upper Then
upper += 1000000
ReDim Preserve random(upper)
End If
random(i) = RandomClass.Next
i += 1
Loop
End Sub
Denne vil selvsagt krasje før eller siden, men den gjør det allerede når upper = 102,000,000. Skulle gjerne sett at det først skjedde rundt en millard...
Jeg benytter VB.NET til å utføre Monte Carlo-simuleringer (finans). Jeg vet ikke hvor godt du kjenner til dette, men i bunn og grunn er dette en måte å gjøre MANGE eksperimenter der vanlige statistiske / matematiske metoder ikke strekker til.
Uheldigvis sliter jeg med feilmeldingen:
"Exception of type 'System.OutOfMemoryException' was thrown."
Skyldes dette kun at maskinene har gått tom for RAM eller er det annet som ligger bak?
Tenker f.eks. på 32bit vs 64bit begrensinger...?
Holder det at jeg kjøper et (64 bit) system med masse RAM så er problemet løst?
Nedenfor er en enkel kode (med en uendelig loop) for å illustrere problemet.
Private Sub testMemory()
Dim RandomClass As New Random()
Dim upper As Integer = 1000000
Dim random(upper) As Integer
Dim i As Integer = 0
Do
If i > upper Then
upper += 1000000
ReDim Preserve random(upper)
End If
random(i) = RandomClass.Next
i += 1
Loop
End Sub
Denne vil selvsagt krasje før eller siden, men den gjør det allerede når upper = 102,000,000. Skulle gjerne sett at det først skjedde rundt en millard...
Sist redigert: