Maximalgröße für Arrays?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

pirahni

Betreff: Maximalgröße für Arrays?

BeitragDi, Jun 01, 2010 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
In meinem aktuellem Projekt, welches kein Spiel oder so ist, sondern große Datenmengen verarbeiten muss, habe ich gerade ein Problem.

Immer wenn ich es starte wird mir "Memory Access Violation" gesagt, bei diesem Code: [AUSKLAPPEN]
Dim Unterschied%(320,240,320,240)


Nun meine Frage: Ist dieses Array zu groß, und wenn ja, wie kann ich dann trotzdem diese Datenmenge verarbeiten?
Leicht verständliche Informatiktutorials:
http://www.youtube.com/VascoLange

empet

BeitragDi, Jun 01, 2010 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
vergleiche doch mal deinen arbeitsspeicher mit dem den du hier hast!

Xeres

Moderator

BeitragDi, Jun 01, 2010 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
321*241*321*241*4 = 22,29 Gigabyte wenn ich mich nicht irre...
Könnte mit dem RAM knapp werden.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

blackgecko

BeitragDi, Jun 01, 2010 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked
Rechne mal nach:
320*240*320*240*4 Byte = fast 22 Gigabyte!
Hast du so viel Arbeitsspeicher? Wink
Edit: Natürlich zu spät...
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

mpmxyz

BeitragDi, Jun 01, 2010 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist ganz klar zu groß.
Ich stelle sogar die Behauptung auf, dass dein Betriebssystem so viel Speicher überhaupt nicht verwalten kann:
321*241*321*241*4 Byte=23.938.897.284 Byte >> 4 GiB
Was hast du mit diesem Array vorgehabt?
mfG
mpmxyz
Edit: Zu spät, aber der erste mit einer weiterführenden Frage! Wink
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Xeres

Moderator

BeitragDi, Jun 01, 2010 18:19
Antworten mit Zitat
Benutzer-Profile anzeigen
mpmxyz hat natürlich recht, man könnte etwas hilfreicher sein:
Du berechnest einen unterschied, so viel kann man erkennen - jetzt ist nur die Frage, von was.
a) du hast tatsächlich nur 2 Arrays a 320 mal 240, dann sollte es auch so gehen oder
b) du lädst die Daten temporär und speicherst nur das Ergebnis und/oder
c) Ein Datensatz Laden, Verarbeiten, speichern für X Datensätze...

die Möglichkeiten dürften etwas variieren, je nach dem was du schlussendlich vor hast.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

BBPro2

BeitragDi, Jun 01, 2010 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
nein das kann kein normales aktuelles system verwalten

wie du es umgehst:

indem du es in einzelnen etappen löst, die einzeln in deinen speicher passen

wie du das konkret machst ?
das hängt 100% von deinem problem ab

pirahni

BeitragDi, Jun 01, 2010 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Unterschied von jedem Helligkeitspunkt zu jedem Helligkeitspunkt eines anderen Bildes... Muss ich wohl zwischenspeichern Sad

mpmxyz

BeitragDi, Jun 01, 2010 19:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Das lässt sich doch locker immer dann berechnen, wenn man es braucht. (Eine Subtraktion/Addition hat ein Computer in ein paar Takten mit allem "Drumherum" gemacht.)
Das einzige, was so langsam beim Bestimmen sein könnte, dass es sich zum Zwischenspeichern lohnt, sind die Farb-/Helligkeitswerte der Bilder. (2 320x240-Arrays - nur 614.400 Byte)
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Hubsi

BeitragDi, Jun 01, 2010 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz simpler Fehler in der Logik wenn ich Dich recht verstehe. Das Array müßte wohl so aussehen: Dim Unterschied(320,240,1) -> Damit kannst Du von 2 Bildern mit je 321 mal 241 Pixeln den Helligkeitswert speichern und vergleichen. Und schluckt auch nur 151 KB Ram Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group