Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.05.2010, 20:34 Titel: MaximaleGröße für UDT Arrays? |
|
|
hi Leuts, ich hab da mal ein kleines Problem..
Angenommen ich hätte einige UDTs z.B
Code: |
Type UDT_1
as Integer INT1, INT2
as Single SING1, SING2
[...]
End Type
Type UDT_2
as UByte UB1, UB2
as Double DBL1, DBL2
[...]
End Type
|
so und diese UDTs sind in meinem Proggi sehr groß (~20-30 Elemente) und Teilweise auch inneinander verkettet
So jetzt definiere ich 2 Konstanten, welche jeweils die Anzahl der Indizes zweier Arrays angeben. In Bezug eben auf das jeweilige UDT
Code: |
Const MaxIndexUDT_1=1000
Const MaxIndexUDT_2=1000
Dim EinArray ( MaxIndexUDT_1 ) As UDT_1
Dim NochEinArray ( MaxIndexUDT_2 ) As UDT_2
|
ich benutze 4 solcher UDTs also auch 4 Konstanten und 4 Arrays.
Und was mich stutzig werden ließ war:
wenn ich eine Konstante um z.B 1000 erhöht habe kam die Tolle Windows-Meldung "funktioniert n. mehr" u.s.w
wenn ich dann aber eine andere Konstante um 1000 senkte lief es wieder.
der FBC kompiliert alles sorglos!
Und wenn es dann lief verbrauchte es auch nur 10MB Ram...
Da frage ich mich:
Gibt es ein Limit an Indizes, welches für alle Arrays zusammen gilt?
Oder anders gefragt:
Gibt es eine Speicherbegrenzung für das reservieren v. Variablen?
Oder ist das ganze ein Windows Vista x64 BUG? (btw ich hasse vista)
====================================================
Ich hatte gedacht man kann so viele Arrayeinträge definieren bis der RAM voll ist.
ich hoffe das war verständlich
könnte mir das bitte jmd erklären? wär echt net
euer d1rTy h4RrY
EDIT: @Moderatoren -> tut mir Leid könntet Ihr dass
bitte verschieben, sollte eigenlich zu "Allgemeine FB Fragen" sry verklickt  _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 04.05.2010, 21:17 Titel: |
|
|
Kompilier mal mit -exx und starte dein Programm über die Konsole. Sag uns was es anzeigt beim abstürtzen. Da gibts einige Sachen die denkbar sind.
Übrigens kannst du mit FB nicht beliebig viel RAM verwenden, die Grenze liegt glaube ich bei 2 GB. |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.05.2010, 21:23 Titel: |
|
|
ja das habe ich schon probiert. da kommt nämlich nix.. normalerweise müsste inner kommandozeile ja dann der Fehler stehen aber nix ,
vllt doch ein windows Vista Problem, ich werds morgen auf XP testen... oder vllt weiß jmd ob es eine art Array limit oder so ähnlich gibt.. fände ich aber komisch
d1rty h4rry
EDIT: in der Windows-Absturzmeldung stehn ja noch ein paar details aber ich werd daraus n. schlau
Windows Vista hat Folgendes geschrieben: |
Problemsignatur:
Problemereignisname: APPCRASH
Anwendungsname: flteamster.exe
Anwendungsversion: 0.0.0.0
Anwendungszeitstempel: 4be07310
Fehlermodulname: flteamster.exe
Fehlermodulversion: 0.0.0.0
Fehlermodulzeitstempel: 4be07310
Ausnahmecode: c0000005
Ausnahmeoffset: 0000242c
Betriebsystemversion: 6.0.6002.2.2.0.768.3
Gebietsschema-ID: 1031
Zusatzinformation 1: 5497
Zusatzinformation 2: 2d683a30b3ace519fad584b5572b3c31
Zusatzinformation 3: 46ca
Zusatzinformation 4: f95d3bdcb78474908d7cdf0cc959dc76 |
EDIT2: 2GB?! ich wär froh wenn 20MB gehen würden  _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 04.05.2010, 22:03 Titel: |
|
|
20 MB Arrays? Da könntest du mal den Stack vergrößern. Einfach mit "-t 30000" versuchen oder noch größer, je nach dem wie viele Arrays du hast und wie groß die sind. |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.05.2010, 22:15 Titel: |
|
|
Stueber du bist mein Held
ich wusste noch garnet dass man die stack-Größe verändern kann,
boah ich dachte schon das wird nimmehr
aber It works, mann! ich liebe dieses Forum
Danke!
d1RtY H4RrY _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 04.05.2010, 22:17 Titel: |
|
|
Stueber hat Folgendes geschrieben: | 20 MB Arrays? Da könntest du mal den Stack vergrößern. Einfach mit "-t 30000" versuchen oder noch größer, je nach dem wie viele Arrays du hast und wie groß die sind. |
Damn, zu langsam.
-t StackSize
[StackSize] = kB |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.05.2010, 22:29 Titel: |
|
|
@28398 - trotzdem danke
d1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 06.05.2010, 18:25 Titel: |
|
|
Derartige Arrays gehören eigentlich in den Heap, und nicht auf den Stack; in FreeBASIC: "redim ..." _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
|