Max. Speicherbedarf einer VB6-Anwendung: 2-GB-Grenze auf 3-GB erhöhen?

17/06/2011 - 19:12 von Dieter Strassner | Report spam
Hallo VB'ler,

in einer besonderen Anwendung (VB6-OCX) wedren eine Vielzahl von Daten
übergeben und gehalten (ADODBs und sortierte FlexGrids). Diese Anwendung
erhàlt jetzt vom Aufruferprogramm (VS2008, C#) soviele Daten, das wàhrend
der Berechnung im OCX in der VS2008-Anwendung eine "OutOfMemoryException"
auftritt. Und dies, obwohl ich durchgàngig in allen Functions, Subs und
Properties eine Fehlerbehandlung drin habe.

Nach Beobachtung des Benutzers vergrößert sich die Anwendung auf ca. 1,5
GB-RAM auf (aufgrund der vielen Dateninputs) und bringt dann die o.g.
Fehlermeldung. Ich vermute mal, der Auslöser ist das reißen der 2
GB-Grenze.

Vor ca. 2 Jahren hatte ich einen Artikel von MS (?) gelesen, in dem drin
stand, wie eine VB6-Applikation mit bis zu 3GB klarkommen kann.
Leider war das damals dann doch nicht so wichtig, das ich mir das verlinkt
hàtte (weder im IE noch im Hirn).

Kennt jemand das gesuchte oder dazu etwas genaueres?
Mit einen GB mehr wàre das akute Problem gelöst. Das Programm umbauen, das
es deutlich weniger Speicher benötigt geht sicherlich auch, kostet aber
vieeeel Zeit und damit Geld und evtlö. auch Performance. Wàre die
Alternative, wenn es nicht anders geht.

Danke für Tipps!

Viele Grüße - Dieter

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz
 

Lesen sie die antworten

#1 Thorsten Albers
17/06/2011 - 19:56 | Warnen spam
Dieter Strassner schrieb im Beitrag
<itg1v8$lm6$...
in einer besonderen Anwendung (VB6-OCX) wedren eine Vielzahl von Daten
übergeben und gehalten (ADODBs und sortierte FlexGrids). Diese Anwendung
erhàlt jetzt vom Aufruferprogramm (VS2008, C#) soviele Daten, das wàhrend

der Berechnung im OCX in der VS2008-Anwendung eine


"OutOfMemoryException"
auftritt. Und dies, obwohl ich durchgàngig in allen Functions, Subs und
Properties eine Fehlerbehandlung drin habe.



Das scheint doch dafür zu sprechen, daß der Speicherfehler an einer anderen
Stelle als im OCX auftritt. Darauf hàttest Du dann direkt sowieso keinen
Einfluß. Am OCX etwas zu àndern würde dann nicht automatisch den Fehler
beseitigen.

Nach Beobachtung des Benutzers vergrößert sich die Anwendung auf ca. 1,5
GB-RAM auf (aufgrund der vielen Dateninputs) und bringt dann die o.g.
Fehlermeldung. Ich vermute mal, der Auslöser ist das reißen der 2
GB-Grenze.



Welche "2 GB-Grenze"? Der virtuelle Adreßraum von Prozessen unter Win NT
umfaßt 4 GB.

Vor ca. 2 Jahren hatte ich einen Artikel von MS (?) gelesen, in dem drin
stand, wie eine VB6-Applikation mit bis zu 3GB klarkommen kann.
Leider war das damals dann doch nicht so wichtig, das ich mir das


verlinkt
hàtte (weder im IE noch im Hirn).



Rein spekulativ: Ich möchte wetten, es handelte sich um einen Artikel, der
sich damit befaßte, wie VB mit >>Dateien größer als 2 GB<< klar kommen
kann...

Mit einen GB mehr wàre das akute Problem gelöst.



Aber auch nur das akute! Was sagt Dir, daß wenig spàter nicht auch die 3
GB-Grenze erreicht wàre?

Das Programm umbauen, das
es deutlich weniger Speicher benötigt geht sicherlich auch, kostet aber
vieeeel Zeit und damit Geld und evtlö. auch Performance. Wàre die
Alternative, wenn es nicht anders geht.



Ist aber sicherlich die allerbeste und sinnvollste Lösung.

Thorsten Albers

gudea at gmx.de

Ähnliche fragen