Variablen

Moderator: Moderatoren

Variablen

Beitragvon Koverhage » Do, 05. Nov 2015 13:46

Ich habe das problem, dass unsere Anwendung nach dem Start immer langsamer wird und wollte der Sache mit MEMWATCH auf dem Grund gehen.
Im Fenster PUBLICS
stehen, z.B.

GetList
PromptList
oDesktop
dCCOLOR

GetList benutze ich, ist aber überall als Local deklariert, die anderen benutze ich nicht
Habe auch im Quellcde keine PUBLIC Deklarationen gefunden außer für dCCOLOR in _dccolor.prg
welches ich auch nicht benutze, aber vermutlich dann von Express++ irgendwo.

Woher können die Publics kommen ?

Eventuell liegt es auch am ToolTip Sytem, aber das möchte ich wenn möglich nicht deaktivieren.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1893
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen

Re: Variablen

Beitragvon Tom » Do, 05. Nov 2015 14:11

Hallo, Klaus.

Wenn Du die Quellcodes von eXpress++ durchsuchst, wirst Du feststellen, dass diese Variablen zwar erzeugt, aber nahezu ausschließlich als LOCALs verwaltet werden. "PromptList" beispielsweise wird von "DC_MenuTo()" verwendet, aber als Parameter. Auch das Tooltip-System macht das nicht. "GetList" oder "oDialog" sind immer Parameter.

"dCColor" wird allerdings von "DC_ClrArr()" als PUBLIC erzeugt. Es findet sich im gesamten Quellcode nur an dieser einen Stelle überhaupt das Kommando "PUBLIC". Ich glaube nicht, dass man diese Funktion überhaupt noch verwenden sollte. Sie steht in irgendeiner impliziten Prozedur.

So oder so, vier Publics verlangsamen nicht Deine Software. Allerdings werden Objekte, die von Objekten referenziert werden, die nicht zerstört werden können, weiter im Speicher gehalten. Der GC zerstört sie nicht. So ähnlich verhält es sich in einigen Situationen mit Arrays. Du solltest Deine Dialoge nacheinander aufrufen und schauen, welche den Speicher nicht freigeben.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6695
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin


Zurück zu eXpress++

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast