Irgendwas bremst die Applikation wahnsinnig
Moderator: Moderatoren
Irgendwas bremst die Applikation wahnsinnig
Hallo zusammen
Mit unserer Applikation, welche mit XBase 1.9 kompiliert ist, haben wir seit einiger Zeit einige Probleme bei einem Kunden. Die App läuft mit dem ADS 7.1 zusammen
Das äussert sich folgendermassen: Der Fensteraufbau ist vor allem wahnsinnig langsam. Nach einem Neustart der Applikation ist es wieder ok.
- Bei einem User ist das Programm nach dem Mittag langsam.
- Bei einem zweiten ist die App langsam, wenn sie einige Zeit nicht benutzt wird.
- Bei weiteren Benutzern wird die App langsam während damit gearbeitet wird. Dort muss am Tag mehrere Male neu gestartet werden.
Hat mir jemand einen Tipp, was wir dort noch prüfen und unternehmen könnten?
Folgende Ansätze haben wir schon angeschaut, diese konnten aber weitestgehend ausgeschlossen werden.
- Ursprünglich hatten wir einmal eine Funktion der Windows-API in der App, um ein Fenster nach dem Titel zu suchen, diese haben wir nun raus genommen.
- Zudem vermuteten wir den Drucker, resp. PDF-Writer. Denn die User, welche zuerst reklamiert haben, drucken viel auf PDF. Den PDF-Writer haben wir bei diesem Kunden nun ersetzt, aber das Problem besteht weiterhin.
Falls jemand noch mehr Infos braucht, bitte melden. Ich könnte wahrscheinlich seitenweise schreiben, aber es wäre dann bestimmt das meiste irrelevant.
Vielen Dank für jeden Tipp und Hinweis.
Gruss
Robin
Mit unserer Applikation, welche mit XBase 1.9 kompiliert ist, haben wir seit einiger Zeit einige Probleme bei einem Kunden. Die App läuft mit dem ADS 7.1 zusammen
Das äussert sich folgendermassen: Der Fensteraufbau ist vor allem wahnsinnig langsam. Nach einem Neustart der Applikation ist es wieder ok.
- Bei einem User ist das Programm nach dem Mittag langsam.
- Bei einem zweiten ist die App langsam, wenn sie einige Zeit nicht benutzt wird.
- Bei weiteren Benutzern wird die App langsam während damit gearbeitet wird. Dort muss am Tag mehrere Male neu gestartet werden.
Hat mir jemand einen Tipp, was wir dort noch prüfen und unternehmen könnten?
Folgende Ansätze haben wir schon angeschaut, diese konnten aber weitestgehend ausgeschlossen werden.
- Ursprünglich hatten wir einmal eine Funktion der Windows-API in der App, um ein Fenster nach dem Titel zu suchen, diese haben wir nun raus genommen.
- Zudem vermuteten wir den Drucker, resp. PDF-Writer. Denn die User, welche zuerst reklamiert haben, drucken viel auf PDF. Den PDF-Writer haben wir bei diesem Kunden nun ersetzt, aber das Problem besteht weiterhin.
Falls jemand noch mehr Infos braucht, bitte melden. Ich könnte wahrscheinlich seitenweise schreiben, aber es wäre dann bestimmt das meiste irrelevant.
Vielen Dank für jeden Tipp und Hinweis.
Gruss
Robin
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo Robin,
hierbei kann es viele Möglichkeiten geben.
- Läuft das ganze im Netz ? Wenn ja: Karten, Kabel, Treibereinstellung usw.
- Antivir . Läuft das Antivirprogramm ständig im Hintergrund ?? prüft es evtl. jeden netzzugriff ??
- Läuft ein anderes Programm im Hintergrund ? Was sagt der Taskplaner ?
- sleep - also wenn ich große Datenmengen durchlaufe - mach ich vor dem enddo / next ein Sleep(001). Wirkt Wunder
- Alle entsprechenden Servicepacks der Betriebssysteme installiert ?
hierbei kann es viele Möglichkeiten geben.
- Läuft das ganze im Netz ? Wenn ja: Karten, Kabel, Treibereinstellung usw.
- Antivir . Läuft das Antivirprogramm ständig im Hintergrund ?? prüft es evtl. jeden netzzugriff ??
- Läuft ein anderes Programm im Hintergrund ? Was sagt der Taskplaner ?
- sleep - also wenn ich große Datenmengen durchlaufe - mach ich vor dem enddo / next ein Sleep(001). Wirkt Wunder
- Alle entsprechenden Servicepacks der Betriebssysteme installiert ?
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
hast du die Prof. Sub. ? Wenn ja, dort gibt es ein Programm (memwatch.ZIP) das man einlinken kann um den Speicherverbrauch zu ermitteln und eines (xppprof.ZIP) um das Programm nach den entscheidenten Stelle zu durchsuchen.
Nicht destroy()te Drucker-, Schriftobjecte oder ähnliches können natürlich die Speicherauslastung des Systemes erheblich belasten. Bei meinem Rechner (Win2000 mit neuem F-Prot) werden die Instanzen von Firefox nicht mehr sauber geschlossen, eventuell habt Ihr so ein Problem mit aufgerufenen Objekten, DLLs etc.
Notfalls kann man den Taskmanager nutzen um grob den Speicherverbrauch zu beurteilen. Wenn alles geladen ist, sollte der verbrauchte Speicher kaum noch zu nehmen bei normaler Arbeit.
hast du die Prof. Sub. ? Wenn ja, dort gibt es ein Programm (memwatch.ZIP) das man einlinken kann um den Speicherverbrauch zu ermitteln und eines (xppprof.ZIP) um das Programm nach den entscheidenten Stelle zu durchsuchen.
Nicht destroy()te Drucker-, Schriftobjecte oder ähnliches können natürlich die Speicherauslastung des Systemes erheblich belasten. Bei meinem Rechner (Win2000 mit neuem F-Prot) werden die Instanzen von Firefox nicht mehr sauber geschlossen, eventuell habt Ihr so ein Problem mit aufgerufenen Objekten, DLLs etc.
Notfalls kann man den Taskmanager nutzen um grob den Speicherverbrauch zu beurteilen. Wenn alles geladen ist, sollte der verbrauchte Speicher kaum noch zu nehmen bei normaler Arbeit.
Gruß
Hubert
Hubert
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Robin,
noch ein Tip: Soviel ich beobachtet habe, tritt dieses Verhalten meistens auf bei:
1. Benutzern die sehr schnell und viel eingeben
2. die Rechner haben sehr wenig Speicher
3. und die Rechner haben die Grafik on Board
Xbase++ scheint sich dann zu verschlucken und des öfteren Speicher nicht mehr ferizugeben.
Wie Du erkannt hast ist die Anwendung bei Neustart dann wieder entsprechend schnell.
Bei Nutzern bei denen zwar Punkt 2 und 3 zutreffen, Punkt 1 aber nahezu ausgeschlossen werden kann tritt dies Problem nicht auf.
Wenn es die Anwendung zulässt, würde ich folgendes versuchen:
1. Sleep(0) nachdem eine Bildschrimeingabe (nicht Feld) abgeschlossen und ein Destroy der verwendeten Objekte durchgeführt wurde.
Ein Sleep bei den Datenbankoperationen macht in diesem Fall wenig Sinn.
noch ein Tip: Soviel ich beobachtet habe, tritt dieses Verhalten meistens auf bei:
1. Benutzern die sehr schnell und viel eingeben
2. die Rechner haben sehr wenig Speicher
3. und die Rechner haben die Grafik on Board
Xbase++ scheint sich dann zu verschlucken und des öfteren Speicher nicht mehr ferizugeben.
Wie Du erkannt hast ist die Anwendung bei Neustart dann wieder entsprechend schnell.
Bei Nutzern bei denen zwar Punkt 2 und 3 zutreffen, Punkt 1 aber nahezu ausgeschlossen werden kann tritt dies Problem nicht auf.
Wenn es die Anwendung zulässt, würde ich folgendes versuchen:
1. Sleep(0) nachdem eine Bildschrimeingabe (nicht Feld) abgeschlossen und ein Destroy der verwendeten Objekte durchgeführt wurde.
Ein Sleep bei den Datenbankoperationen macht in diesem Fall wenig Sinn.
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Hallo Robin,
zur Problemanalyse würde ich erst einmal die Datenbank-Operationen kapseln um zu sehen, ob das Problem mit den Datenbanken bzw. mit dem Datenbankserver in Zusammenhang steht.
In diesem Zusammenhang würde ich folgenden Fragestellungen nachgehen:
- Taucht das Problem schon bei Initiinalisierung/Anbindung mit dem Datenbankserver auf?
- Wurden die richtigen Datenbanktreiber eingebunden (dbeSys)
- In Zusammenhang mit Db-Server-Client: ist ein aktueller Treiber aufgespielt oder wurde seit dem Auftreten der Probleme der Client geändert?
- Wie verhalten sich die Datenbanken, wenn auf einer Arbeitsstation mit einem Adminstratoren-Tool auf den DB-Server zugeriffen wird?
- Tritt das Problem in Zusammenhang mit jeder Datenbank auf?
- Wie steht es mit der CPU-Auslastung?
- Welche Speicher-Ressourcen werden in Anspruch bei welchen Aktionen in Anspruch genommen?
- Gibt evtl. der Debugger Auskunft darüber, was die Systemlast verursacht?
- Wurde schon ein kleines Test-Programm geschrieben das auf Daten des DB-Servers zugreift und browst?
Methotik führt in meisten Fällen zur Ursache.
Viele Grüße
Olaf
zur Problemanalyse würde ich erst einmal die Datenbank-Operationen kapseln um zu sehen, ob das Problem mit den Datenbanken bzw. mit dem Datenbankserver in Zusammenhang steht.
In diesem Zusammenhang würde ich folgenden Fragestellungen nachgehen:
- Taucht das Problem schon bei Initiinalisierung/Anbindung mit dem Datenbankserver auf?
- Wurden die richtigen Datenbanktreiber eingebunden (dbeSys)
- In Zusammenhang mit Db-Server-Client: ist ein aktueller Treiber aufgespielt oder wurde seit dem Auftreten der Probleme der Client geändert?
- Wie verhalten sich die Datenbanken, wenn auf einer Arbeitsstation mit einem Adminstratoren-Tool auf den DB-Server zugeriffen wird?
- Tritt das Problem in Zusammenhang mit jeder Datenbank auf?
- Wie steht es mit der CPU-Auslastung?
- Welche Speicher-Ressourcen werden in Anspruch bei welchen Aktionen in Anspruch genommen?
- Gibt evtl. der Debugger Auskunft darüber, was die Systemlast verursacht?
- Wurde schon ein kleines Test-Programm geschrieben das auf Daten des DB-Servers zugreift und browst?
Methotik führt in meisten Fällen zur Ursache.
Viele Grüße
Olaf
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
ich kann es gar nicht oft genug wiederholen, wenn ich Probleme mit einem Programm habe, nutze ich die kompfortable Berichterstattung mit der Alternate Datei:
Dann bediene ich das Programm bzw. stresse es.
Man sieht sehr schnell wo keine Zeit verbraucht wird und kann problematische Stellen einkreisen.
Angezeigten Variablen zeigen ob man erwartete Inhalte vorfindet.
Nützlich ist hier auch die neue Funktion Var2Char() ...
Oft belächelt ist diese Methode aber dem aktuellen Debugger überlegen, da man keine Probleme mit den Focuswechseln hat und die Listen ausdrucken und gut untersuchen kann. Mit dem Debugger geht das eher nur für kurze Code Abschnitte bis man die Übersicht verliert.
In deinem Fall müsste man dann vergleichen in welchen Programmteilen die Verzögerungen auftreten. Mit Memory(...) kann man dann den aktuellen Speicher abfragen auch wenn diese Angabe mit Vorsicht zu bewerten ist (siehe Hilfetext).
ich kann es gar nicht oft genug wiederholen, wenn ich Probleme mit einem Programm habe, nutze ich die kompfortable Berichterstattung mit der Alternate Datei:
Code: Alles auswählen
set console off // besonders wichtig bei GUI Programmen
set alternate to MyTestFile.TXT
set alternate on
...
... an allen interessanten Stellen ...
? date(),time(),seconds(), ProcName(), ProcLine(), ThreadID(), "myName", Variablen etc.
...
...
Man sieht sehr schnell wo keine Zeit verbraucht wird und kann problematische Stellen einkreisen.
Angezeigten Variablen zeigen ob man erwartete Inhalte vorfindet.
Nützlich ist hier auch die neue Funktion Var2Char() ...
Oft belächelt ist diese Methode aber dem aktuellen Debugger überlegen, da man keine Probleme mit den Focuswechseln hat und die Listen ausdrucken und gut untersuchen kann. Mit dem Debugger geht das eher nur für kurze Code Abschnitte bis man die Übersicht verliert.
In deinem Fall müsste man dann vergleichen in welchen Programmteilen die Verzögerungen auftreten. Mit Memory(...) kann man dann den aktuellen Speicher abfragen auch wenn diese Angabe mit Vorsicht zu bewerten ist (siehe Hilfetext).
Gruß
Hubert
Hubert
Besten Dank für die Antworten!
In unserer App. prüfen wir jedoch regelmässig, ob wir das Netzlaufwerk noch erreichen. Wenn dem nicht mehr so ist, gibt es eine Meldung. Wenn das BS die Netzwerkkarte nun ausschaltet, um Energie zu sparen, wäre die Verbindung ja ganz weg, oder?
Gibt es auch eine Option, welche die Geschwindigkeit der Karte extrem drosselt?
Was gibt es denn sonst noch für "unsinnige" Energiesparfunktionen?
Momentan versuche ich das Ganze via Remotedesktop zu reproduzieren. Bisher leider ohne Erfolg. Das ominöse Verhalten tritt bis jetzt (über die Remote-Verbindung) nicht auf.
Deshalb könnte ich mir schon vorstellen, dass es was mit dieser Energiesparfunktion zu tun hat und die Remote-Verbindung selber einfach verhindert, dass die Karte abgestellt wird.
Zuerst würde ich gerne das Verhalten reproduzieren können, um danach der Reihe nach verschiedene Ansätze zu probieren, damit ich am Schluss auch weiss, an was es wirklich gelegen hat.
Gruss
Robin
Die Option "Computer kann Gerät ausschalten, um Energie zu sparen" wäre evtl. noch eine plausible Erklärung.Alfred hat geschrieben: Auf unsinnige Energiesparfunktionen(z.B. Netzwerkkarte) prüfen.
In unserer App. prüfen wir jedoch regelmässig, ob wir das Netzlaufwerk noch erreichen. Wenn dem nicht mehr so ist, gibt es eine Meldung. Wenn das BS die Netzwerkkarte nun ausschaltet, um Energie zu sparen, wäre die Verbindung ja ganz weg, oder?
Gibt es auch eine Option, welche die Geschwindigkeit der Karte extrem drosselt?
Was gibt es denn sonst noch für "unsinnige" Energiesparfunktionen?
Momentan versuche ich das Ganze via Remotedesktop zu reproduzieren. Bisher leider ohne Erfolg. Das ominöse Verhalten tritt bis jetzt (über die Remote-Verbindung) nicht auf.
Deshalb könnte ich mir schon vorstellen, dass es was mit dieser Energiesparfunktion zu tun hat und die Remote-Verbindung selber einfach verhindert, dass die Karte abgestellt wird.
Zuerst würde ich gerne das Verhalten reproduzieren können, um danach der Reihe nach verschiedene Ansätze zu probieren, damit ich am Schluss auch weiss, an was es wirklich gelegen hat.
Gruss
Robin
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
"Computer kann Gerät ausschalten" führt dazu, daß eine aktive Netzwerkverbindung einfach stirbt. Je nach Chipsatz und Betriebssystem gelingt es bei einem dann folgenden Request einfach nicht, die Verbindung wieder aufzubauen. Die Applikation tritt dann auf Laufzeitfehler wie "ungültiges Handle", "nichtselektierter Arbeitsbereich" undsoweiter. Einen Performanceeffekt sollte es allerdings nicht geben. Wenn der Fensteraufbau sehr langsam ist, hat das häufig seine Ursache darin, daß der Arbeitsspeicher schlicht ausgelastet ist (swappen) oder daß massenweise Objekte noch aktiv und nur nicht mehr sichtbar sind. Darauf weist auch hin, daß es bei einem Neustart wieder schnell ist. Löschst und nilst Du wirklich alles, was nicht mehr benötigt wird?
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
eine benutzte Komponente wird (sollte eigentlich) nie abgeschaltet werden. Solange deine Anwendung in der Minute auch nur einen Zugriff auf eine Netzwerkresource macht, kann die nicht abgehängt werden.
Dennoch habe ich dies auch abgestellt, da ich sonst nach dem Ende des StandBy Modus keine Netzverbindung mehr erhalten habe.
Wenn man einige Zeit (Standard meine ich 2 Stunden) keine Netzwerkzugriffe auf ein bestimmtes Laufwerk durchgeführt hat, trennt der Server die Verbindung. Beim nächsten Zugriff wird diese sofort ohne erkannbare Verzögerung wieder hergestellt, falls der Server genug freie Resourcen zur Verfügung hat. Wenn nicht hängt das Programm(teil) Minuten bis zum Timeout und Meldungen wie (Clipper: kann overlaydatei nicht lesen oder Netzlaufwerk / Datei nicht verfügbar / vorhanden ...)
Ich hatte vergessen meiner SAT-TV Karte die IP Zuordnung wegzunehmen und ab und an hing der ganze Rechner ...
Dass aber nur eine Anwendung mit der Zeit langsamer wird und nach Beenden DIESER Anwendung diese nach einem neuen Programmstart wieder normal läuft deutet für mich auf eine interne Funktion hin, die immer mehr Speicher belegt oder z.B. immer größere temporäre Dateien durchsuchen muss.
eine benutzte Komponente wird (sollte eigentlich) nie abgeschaltet werden. Solange deine Anwendung in der Minute auch nur einen Zugriff auf eine Netzwerkresource macht, kann die nicht abgehängt werden.
Dennoch habe ich dies auch abgestellt, da ich sonst nach dem Ende des StandBy Modus keine Netzverbindung mehr erhalten habe.
Wenn man einige Zeit (Standard meine ich 2 Stunden) keine Netzwerkzugriffe auf ein bestimmtes Laufwerk durchgeführt hat, trennt der Server die Verbindung. Beim nächsten Zugriff wird diese sofort ohne erkannbare Verzögerung wieder hergestellt, falls der Server genug freie Resourcen zur Verfügung hat. Wenn nicht hängt das Programm(teil) Minuten bis zum Timeout und Meldungen wie (Clipper: kann overlaydatei nicht lesen oder Netzlaufwerk / Datei nicht verfügbar / vorhanden ...)
Ich hatte vergessen meiner SAT-TV Karte die IP Zuordnung wegzunehmen und ab und an hing der ganze Rechner ...
Dass aber nur eine Anwendung mit der Zeit langsamer wird und nach Beenden DIESER Anwendung diese nach einem neuen Programmstart wieder normal läuft deutet für mich auf eine interne Funktion hin, die immer mehr Speicher belegt oder z.B. immer größere temporäre Dateien durchsuchen muss.
Gruß
Hubert
Hubert
Hallo Robin,
Energiesparen siehe Systemsteuerung/Energieoptionen.
XP verliert gerne seinen virtuellen Arbeitsspeicher. Prüf mal ob der
noch da ist und auch genügend Platz auf der Festplatte ist.
Meiner war gerade eben auf 0 gestanden.
Hast du den Client mal mit Norton Utilities geprüft? Defrag?
Zur Fehlersuche würde ich mir ein Referenzsystem auf Wechelplatte
ziehen. Dann kannst Du wenigsten ausschließen, dass dein Programm
der schuldige ist. Es könnte ja auch eine andere Anwendung den Rechner
dicht machen.
Sollte es sich um einen Windows 2003 Server handeln, dann gibt es noch
einige Dinge die dir das Leben schwer machen können. Deshalb solltest
Du zuerst auf dem Server in die Computerverwaltung unter System
Ereignisanzeige gehen und prüfen ob alles in Ordnung ist.
Gruß
Alfred
Energiesparen siehe Systemsteuerung/Energieoptionen.
XP verliert gerne seinen virtuellen Arbeitsspeicher. Prüf mal ob der
noch da ist und auch genügend Platz auf der Festplatte ist.
Meiner war gerade eben auf 0 gestanden.
Hast du den Client mal mit Norton Utilities geprüft? Defrag?
Zur Fehlersuche würde ich mir ein Referenzsystem auf Wechelplatte
ziehen. Dann kannst Du wenigsten ausschließen, dass dein Programm
der schuldige ist. Es könnte ja auch eine andere Anwendung den Rechner
dicht machen.
Sollte es sich um einen Windows 2003 Server handeln, dann gibt es noch
einige Dinge die dir das Leben schwer machen können. Deshalb solltest
Du zuerst auf dem Server in die Computerverwaltung unter System
Ereignisanzeige gehen und prüfen ob alles in Ordnung ist.
Gruß
Alfred
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hallo,
habe auch grosse Probleme mit der Geschwindigkeit in vielerlei hinsicht. Leider habe ich bis jetzt auch noch nichts gefunden was auf einen Ursache hinweist. Für die bessere Speicherverwaltung kann ich FreeRAM XP pro empfehlen, ist Freeware und putzt in regelmäßigen Abständen den Speicher frei.
Grüsse
Rudolf
habe auch grosse Probleme mit der Geschwindigkeit in vielerlei hinsicht. Leider habe ich bis jetzt auch noch nichts gefunden was auf einen Ursache hinweist. Für die bessere Speicherverwaltung kann ich FreeRAM XP pro empfehlen, ist Freeware und putzt in regelmäßigen Abständen den Speicher frei.
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
-
- UDF-Programmierer
- Beiträge: 92
- Registriert: Di, 19. Dez 2006 19:37
- Wohnort: Düsseldorf
- Kontaktdaten:
Applikation wird langsamer
Es gibt eine einfache Lösung.
Eine der Stärken von Alaska Xbase++ ist das Multithreading:
Eine Applikation besteht in der Regel aus mehreren Modulen:
z. B. Kundenverwaltung, Artikelverwaltung usw.
Also lasse ich jedes dieser Module in einem eigenen Prozess laufen.
{|o|o:=Thread():New(),o:Start({||programm1(parameter)})}
kein destroy, kein NIL usw. mehr nötig.
Der Speicher wird nach Ende des Prozesses freigegeben.
Diese Vorgehensweise erlaubt mir außerdem das Benutzen von
PRIVAT-Variablen.
Gruß
Jürgen
Eine der Stärken von Alaska Xbase++ ist das Multithreading:
Eine Applikation besteht in der Regel aus mehreren Modulen:
z. B. Kundenverwaltung, Artikelverwaltung usw.
Also lasse ich jedes dieser Module in einem eigenen Prozess laufen.
{|o|o:=Thread():New(),o:Start({||programm1(parameter)})}
kein destroy, kein NIL usw. mehr nötig.
Der Speicher wird nach Ende des Prozesses freigegeben.
Diese Vorgehensweise erlaubt mir außerdem das Benutzen von
PRIVAT-Variablen.
Gruß
Jürgen
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hall Jürgen,
mach ich von Anfang an schon so, funktioniert super. Aber das Geschwindigkeitsproblem löst es nicht.
lg
Rudolf
mach ich von Anfang an schon so, funktioniert super. Aber das Geschwindigkeitsproblem löst es nicht.
lg
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
-
- UDF-Programmierer
- Beiträge: 92
- Registriert: Di, 19. Dez 2006 19:37
- Wohnort: Düsseldorf
- Kontaktdaten:
Applikation wird langsamer
Hallo,
würde gerne wissen, ob das am ADS liegt.
Arbeite mit XBase 1.82 und Express++ . Ich benutze noch
DBFNTX . Ich hatte auch nach intensiven Prüfungen des
Speichers in dieser Konstellation keine Probleme feststellen
können.
Ich starte allerdings meine EXE immer vom lokalen Rechner.
Hatte da in der Vergangenheit so manche Probleme mit langsamen
Netzwerken.
Gruß
Jürgen
würde gerne wissen, ob das am ADS liegt.
Arbeite mit XBase 1.82 und Express++ . Ich benutze noch
DBFNTX . Ich hatte auch nach intensiven Prüfungen des
Speichers in dieser Konstellation keine Probleme feststellen
können.
Ich starte allerdings meine EXE immer vom lokalen Rechner.
Hatte da in der Vergangenheit so manche Probleme mit langsamen
Netzwerken.
Gruß
Jürgen
-
- Cut&Paste-Entwickler
- Beiträge: 29
- Registriert: Mi, 05. Jul 2006 15:17
- Wohnort: 26689 Augustfehn
Eine einfache Methode, um festzustellen, ob Objekte nicht wieder aus dem Speicher freigegeben werden, hat man mit dem Windows-eigenen Taskmanager:
Im Prozessfenster blendet man sich sich Spalte GDI-Objekte ein (über Menü Ansicht/Spalten auswählen.../GDI-Objekte).
Man startet die Anwendung und arbeitet darin, indem man z.B. ein Fenster öffnet und wieder schließt. Die Anzahl der GDI-Objekte sollte dann wieder auf die Anzahl vor dem Öffnen zurückfallen, ansonsten hat man vergessen einige Objekte zu zerstören (so von Andreas auf der DEVCON vorgeführt). Und dadurch wächst dann der Speicher so zu und das System wird langsam.
Wenn das Programm beendet und damit der Speicher wieder freigegeben wird, ist das Programm nach de Neustart auch wieder schnell.
Vielleicht hilft es ja weiter.
dirk
Im Prozessfenster blendet man sich sich Spalte GDI-Objekte ein (über Menü Ansicht/Spalten auswählen.../GDI-Objekte).
Man startet die Anwendung und arbeitet darin, indem man z.B. ein Fenster öffnet und wieder schließt. Die Anzahl der GDI-Objekte sollte dann wieder auf die Anzahl vor dem Öffnen zurückfallen, ansonsten hat man vergessen einige Objekte zu zerstören (so von Andreas auf der DEVCON vorgeführt). Und dadurch wächst dann der Speicher so zu und das System wird langsam.
Wenn das Programm beendet und damit der Speicher wieder freigegeben wird, ist das Programm nach de Neustart auch wieder schnell.
Vielleicht hilft es ja weiter.
dirk
Hi Robin,
ist nur deine Applikation betroffen oder werden die Maschine auch im normalen Betrieb immer langsamer?
Wir hatten ein ähnliches Problem, dann waren aber auch meist andere Applikationen mit davon betroffen. Ist dies der Fall, sollte das gesamte Netzwerk komplett durch eine Fachfirma gecheckt werden. Bei uns war es z. Bsp. in einem Fall ein fehlerhafter Hauptswitch (ohne Totalausfall!). Werden alle wichtigen relevanten Netzwerkkomponenten nach erreichen ihrer Lebensdauer ausgesondert und durch Neue ersetzt ...
MfG
Joachim
ist nur deine Applikation betroffen oder werden die Maschine auch im normalen Betrieb immer langsamer?
Wir hatten ein ähnliches Problem, dann waren aber auch meist andere Applikationen mit davon betroffen. Ist dies der Fall, sollte das gesamte Netzwerk komplett durch eine Fachfirma gecheckt werden. Bei uns war es z. Bsp. in einem Fall ein fehlerhafter Hauptswitch (ohne Totalausfall!). Werden alle wichtigen relevanten Netzwerkkomponenten nach erreichen ihrer Lebensdauer ausgesondert und durch Neue ersetzt ...
MfG
Joachim