Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: stringzugriff - wie könnte ich das regeln

  Alt 6. Jan 2006, 12:55
Ein paar grundsätzliche Anmerkungen:

Wenn du Ereignisse deiner eigenen Anwendung protokollieren willst, dann solltest du keine Timer verwenden, sondern die events direkt anzapfen. Wenn du systemweite Ereignisse protokollieren willst, dann wirst du dich besser über hooks einklinken, auch hier sind Timer kein gutes Mittel.

Wenn deine Timer mit einem 10ms Intervall arbeiten, dann solltest du Vorkehrungen treffen, dass sie sich nicht selbst überholen. Du kannst den Wiedereintritt verhindern, indem du den Timer beim Eintritt in die Timer-Routine deaktivierst und zum Schluß wieder aktivierst. Wenn das Timer-Intervall als Takt arbeitet, dann kannst du deinen Code beim Wiedereintritt auch einfach aussetzen lassen.

Wenn du deine Protokollierung in einem string zwischenspeicherst, dann wächst der Zeitaufwand für das Neuzuordnen von Speicher. Noch schlimmer bemerkbar machen sich durch die ständige Speicheranforderung und -Freigabe die gelegentlich notwendigen Kompaktläufe des heap managers. Ein Intervall von 10ms reicht dann nicht immer aus, um den Umspeichervorgang korrekt zu beenden.

Wenn du deine Protokolleinträge so wie gezeigt in einen string speicherst, dann kannst du sie auch gleich wegwerfen. Eine spätere Auswertung deiner Protokolldatei ist viel zu kompliziert. Besser du sammelst deine Einträge in einer StringList. Und versuche eine einheitliches Format zu entwickeln, was die Auswertung stark vereinfachen würde.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat