AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte ETS - Der ExeTimeSaver #30
Thema durchsuchen
Ansicht
Themen-Optionen

ETS - Der ExeTimeSaver #30

Ein Thema von Regan · begonnen am 17. Feb 2009 · letzter Beitrag vom 13. Apr 2009
Antwort Antwort
Seite 2 von 3     12 3      
Regan
Registriert seit: 27. Apr 2007
ETS - Der ExeTimeSaver


ETS ist ein Programm, mit dem man die Laufzeit von vorher eingestellten Programmen dokumentieren kann. Das kann zum Beispiel bei Spielen interessant sein. Auch wird bei 98% aller Programmen der Speicherbedarf angegeben. Das Programm dokumentiert des Weiteren seine eigene Laufzeit und man kann den vorhandenen und freien RAM einsehen. Daneben wird der maximale und aktuelle Speicherverbrauch einer Anwendung angegeben. Dieser wird protokolliert und kann auf Wunsch für die letzten 12 Stunden Laufzeit eingesehen werden.

Das Programm wird ohne Installer geliefert. Es werden im Anwendungsdatenordner Daten abgelegt. Es wird nur eine Datei mitgeliefert. Diese befindet sich direkt in dem Archiv (also ohne Unterordner).

Download: http://regan.bplaced.net/drupal/site...les/ets_30.zip ~413 KB
Download: http://regan.bplaced.net/drupal/site...les/ets_30.rar ~334 KB
Seite: http://regan.bplaced.net/drupal/programme/ets

Screenshot:
http://regan.bplaced.net/drupal/site.../ets_promo.png

Zitat von Changelog:
Version #30:
[+] Laufende Programme können hinzugefügt werden
[+] Maximale Auslastung
[+] Speicherauslastung der letzten 24 h wird für jedes Programm minutengenau aufgezeichnet[*] Performance deutlich verbessert[*] RAM-Anzeige modifiziert[*] Statistik modifiziert[*] Symbolik konsistenter gemacht.

Version #29:[*] "Inaktiv" wird bei nicht laufenden Programmen angezeigt[*] Nicht existierende Programme werden nicht entfernt.[*] RAM- Auslastung korrigiert (2 GB Grenze geknackt)
[-] Division durch Null Error

Version #28:[*] Buttons werden deaktiviert, falls nicht auswählbar[*] Fehler in der Darstellung der Statistik behoben[*] Statistikhinweise überarbeitet

Version #27:
[i] Erste Version
Wünsche/Anregungen/Kritik erwünscht.

MfG
Regan
 
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#11
  Alt 18. Feb 2009, 15:49
Vermutungen zu Fehler mit div 0
In deinem Programm hast du ein "Array of String" o.ä.
In diesem Array steht an erster Stelle das Wort "self" und an evtl. zweiter Stelle das Wort "Gesamtlaufzeit". Zum Zeitpuntk des Fehlers existiert aber anscheinend nur noch das erste Element. Jetzt ermittelst du die Länge des Arrays (=> 1) und ziehst davon 1 ab und das ist dein Divisor, der den Fehler verursacht:
Delphi-Quellcode:
//so in etwa könnte es aussehen
something := somthingelse div (length(StringArray)-1) ;
Der Fehler dürfte aber daran liegen, dass du das Array irgendiwe vorzeitig gekürzt hast.

Suche auf jeden Fall nach einem Array mit dem Inhalt Gesamtlaufzeit.


Edit: Das Array ist evtl. ein Konstantenarray, oder zeigt auf konstante Strings
Edit2: Wenn ich dne "Fehler" mit der -1 entferne läuft das Programm in meinem Fall fehlerfrei. Jetzt wird auch das Wort "Gesamtlaufzeit" im Diagramm angezeigt. das war bisher nicht der Fall, ansonsten hat sich nichts geändert.

Mal noch was zur Programmidee selbst: Da ich nicht spiele und auch anderes anscheinend nicht auf mich zutrifft, sehe ich derzeit keinen Nutzen für mich darin. Mit aber noch ein paar Features wäre es für die Programmentwicklung/Programmtest schon sinnvoll. Da meine Programme teilweise sehr lange laufen und beim testen mitten in der Nacht abstürzen, würde mich schon der Zeitpunkt und der Verlauf des Speicherverbrauchs über die letzten Stunden interessieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#12
  Alt 18. Feb 2009, 16:20
Es wäre schön, wenn man beim Hinzufügen [+] auch einfach eines der aktiven Programme auswählen könne (evt. einen weiteren Hinzufügenbutton machen, wo man eines der aktiven Programme wählen kann)

"Wert" Für die Laufzeit klingt auch etwas ... na ja

ich hatte vorhin mal ein Problem, daß dier "Wert"/die Laufzeit zu schnell verging ... so um die 4 Sekunden pro Aktualisierung/Sekunde ... hatte davor mal zu oft auf Aktualisieren geklickt, konnte dieses Verhalten aber nicht reproduzieren.

Dann wäre es toll, wenn ein Programm mehrmals offen ist, daß die Zeit schneller verginge (eine Sekunde pro Instanz ... also bei 2 Instanzen dann doppelt so schnell)

zum Speicherbadarf:
den maximalen/durchschnittlichen verbrauch würd ich schon nett finden.

und wenn das Programm grad nicht aktiv ist, dann z.B. statt 0k lieber "inaktiv" schreiben

Delphi-Quellcode:
// Speicherbedarf = der Speicher, welchen das "aktive" Programm grad verbraucht.

// Durchschnittsumme: Int64;
// Durchschnittzähler: Integer;
// MaximalerSpeicher: Integer; // oder Int64, falls dein Programm
                                 // auch mehr als 2 GB Programmspeicher anzeigen kann

{if ProgrammIsAktiv then begin}
  // maximalen speicherverbrauch merken
  if MaximalerSpeicher > Speicherbedarf then
    MaximalerSpeicher := Speicherbedarf;
  // durchschnitt berechnen
  Inc(Durchschnittsumme, Speicherbedarf);
  Inc(Durchschnittzähler);
  // überlauf verhinden
  if (Int64Rec(Durchschnittsumme).Hi > $7fff0000)
      or (Durchschnittsumme > $7ffff000) then begin
    Durchschnittsumme := Durchschnittsumme shr 16;
    Durchschnittzähler := Durchschnittsumme shr 16;
  end;
{end;}
und die Anzeige eventuell irendwie so
Delphi-Quellcode:
if ProgrammIsAktiv then
  {Speicher}    := Speicherbedarf
else {Speicher} := 'inaktiv';
{Durchschnitt}  := Durchschnittsumme div Min(Durchschnittzähler, 1);
{Maximal}       := MaximalerSpeicher;
  Mit Zitat antworten Zitat
Regan

 
Turbo Delphi für Win32
 
#13
  Alt 20. Feb 2009, 15:26
Zitat von Zacherl:
Zitat von Larsi:
Wie wärs denn wenn du eine Funktion einbaust die sagt wie lange die Programme falls Sie denn laufen schon geöffnet sind. Der Taskmanager kann das.
Dann benutzt man doch am besten auch den Taskmanager dazu Warum das Rad neu erfinden ..
Meiner kann das nicht .

Zitat von sirius:
Jetzt ermittelst du die Länge des Arrays (=> 1) und ziehst davon 1 ab und das ist dein Divisor, der den Fehler verursacht
Ich habe zwei Stellen, an denen das passiert. Habe jetzt beide mal geändert. Ich hoffe, dass das jetzt nicht mehr passiert.

Zitat von sirius:
würde mich schon der Zeitpunkt und der Verlauf des Speicherverbrauchs über die letzten Stunden interessieren.
Gut, wie stellst du dir das vor. Ich könnte dir folgendes anbieten: Eine Anzeige "Zu letzt aktiv" mit evtl. Datum und Zeit. Reicht dir der Speicherverbrauch über die letzten 24 Stunden aus? Und: Willst du den für jedes Programm einzeln, oder den gesamten Verbrauch?

Zitat von himitsu:
Es wäre schön, wenn man beim Hinzufügen [+] auch einfach eines der aktiven Programme auswählen könne (evt. einen weiteren Hinzufügenbutton machen, wo man eines der aktiven Programme wählen kann)
Habe ich mir aufgeschrieben.

Zitat von himitsu:
"Wert" Für die Laufzeit klingt auch etwas ... na ja
Als erstes war die Komponente ein ValueListEditor . Wird geändert.

Zitat von himitsu:
ich hatte vorhin mal ein Problem, daß dier "Wert"/die Laufzeit zu schnell verging ... so um die 4 Sekunden pro Aktualisierung/Sekunde ... hatte davor mal zu oft auf Aktualisieren geklickt, konnte dieses Verhalten aber nicht reproduzieren.
Das Anzeigen hat mit dem Wert an sich nichts zu tun. Das Werte erhöhen habe ich in Threads ausgelagert.

Zitat von himitsu:
Dann wäre es toll, wenn ein Programm mehrmals offen ist, daß die Zeit schneller verginge (eine Sekunde pro Instanz ... also bei 2 Instanzen dann doppelt so schnell)
Finde ich nicht so gut, denn dann kann es passieren, dass ein Programm länger läuft als die Gesamtlaufzeit.

Zitat von himitsu:
zum Speicherbadarf:
den maximalen/durchschnittlichen verbrauch würd ich schon nett finden.
Ist in der Entwicklung , kommt bei Version #30.

Version #29 hochgeladen. Ich hoffe, dass der Div durch 0 Error jetzt endlich behoben ist. Auch sollte die 2 GB Grenze nun durchbrochen sein.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#14
  Alt 20. Feb 2009, 15:46
Zitat von Regan:
Ich habe zwei Stellen, an denen das passiert. Habe jetzt beide mal geändert. Ich hoffe, dass das jetzt nicht mehr passiert.
Na, ich hoffe du hast nicht nur geändert, sondern auch gewusst warum Klingt grad so, als würdes du wild ändern und testen, ob es noch läuft

Testen kann ich frühestens wieder am Montag.

Zitat:
Gut, wie stellst du dir das vor. Ich könnte dir folgendes anbieten: Eine Anzeige "Zu letzt aktiv" mit evtl. Datum und Zeit. Reicht dir der Speicherverbrauch über die letzten 24 Stunden aus? Und: Willst du den für jedes Programm einzeln, oder den gesamten Verbrauch?
24h reichen. Aber für jedes Programm einzeln.
Was ist zuletzt aktiv? Kriegst du mit, wann das Programm hängenbleibt (->"Keine Rückmeldung") oder nur wann es beendet wurde. Mich würde ja beides interessieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#15
  Alt 20. Feb 2009, 15:49
Zitat von Regan:
Meiner kann das nicht .
schau mal unter Ansicht > Spalten auswählen...

Zitat von Regan:
Finde ich nicht so gut, denn dann kann es passieren, dass ein Programm länger läuft als die Gesamtlaufzeit.
aber wenn 2 Instanzen offen sind, dann läuft es ja doppelt, also insgesamt doppelt so lang

nja gut, muß ja nicht unbedingt sein ... wer startet auch ein programm gleichzeitig mehrfach
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#16
  Alt 20. Feb 2009, 15:51
Zitat von himitsu:
wer startet auch ein programm gleichzeitig mehrfach
Ich, zu Hause. Also meine Freundin auf ihrem Account und ich auf meinem
  Mit Zitat antworten Zitat
Regan

 
Turbo Delphi für Win32
 
#17
  Alt 20. Feb 2009, 16:02
Zitat von sirius:
Zitat von Regan:
Ich habe zwei Stellen, an denen das passiert. Habe jetzt beide mal geändert. Ich hoffe, dass das jetzt nicht mehr passiert.
Na, ich hoffe du hast nicht nur geändert, sondern auch gewusst warum Klingt grad so, als würdes du wild ändern und testen, ob es noch läuft
Das Ding ist: Ich prüfe am Anfang der gesamten Routine auf eventuelle Probleme. Allerdings hat das bis jetzt nichts geholfen .

Zitat von sirius:
Testen kann ich frühestens wieder am Montag.
OK. Das wäre sehr nett.

Zitat von sirius:
Zitat:
Gut, wie stellst du dir das vor. Ich könnte dir folgendes anbieten: Eine Anzeige "Zu letzt aktiv" mit evtl. Datum und Zeit. Reicht dir der Speicherverbrauch über die letzten 24 Stunden aus? Und: Willst du den für jedes Programm einzeln, oder den gesamten Verbrauch?
24h reichen. Aber für jedes Programm einzeln.
Was ist zuletzt aktiv? Kriegst du mit, wann das Programm hängenbleibt (->"Keine Rückmeldung") oder nur wann es beendet wurde. Mich würde ja beides interessieren.
Ich bekomme nur mit, wann es nicht mehr läuft. Diesen Wert würde ich dann einfach speichern und anzeigen lassen, wobei ich mich übers Wochenende mit dem Vorschlag "Keine Rückmeldung" mal beschäftigen könnte.

Zitat von himitsu:
Zitat von Regan:
Meiner kann das nicht .
schau mal unter Ansicht > Spalten auswählen...
Gibt es nicht, ich habe XP SP3.

Zitat von sirius:
Zitat von himitsu:
wer startet auch ein programm gleichzeitig mehrfach
Ich, zu Hause. Also meine Freundin auf ihrem Account und ich auf meinem
Ich setzte den Vorschlag trotzdem nicht um .
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#18
  Alt 20. Feb 2009, 16:17
Die RAM-Anzeige finde ich etwas seltsam .. andersrum erscheint es mir logischer: "500.000kb / 2.000.000kb" -> "500.000 von 2.000.000kb".

Ansonsten kann ich dem Vorschlag, dass man die hinzuzufügenden Programme einach aus einer Liste der momentan laufenden Programme wählen kann, auch sehr gut , ist nämlich schon relativ umständlich und nervig, sich erst durch diverse Ordner zu wühlen, bis man endlich die EXE gefunden hat.

Außerdem wär's praktisch, wenn im Statistik-Dialog das aktuelle Jahr und der aktuelle Monat schon ausgewählt sind, in 90% der Fälle wird man wohl genau das Diagramm sehen wollen.


--> werde das Programm ggf später gerne nutzen (bin ein kleiner Statistikfreak), allerdings erst, wenn man Programme einfacher (s.o.) hinzufügen kann, so ist das zu nervig :S
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#19
  Alt 21. Feb 2009, 23:05
nach ein paar Stunden Laufzeit bekomm ich urplötzlich Fehlermeldungen um die Ohren gehauen:

Zugriffsverletzungen bei Adresse $00000000 bzw $00000001.

Also so alle 'ner Sekunde eine Weitere ... nur via Taskmanager läßt sich das beheben *kill your prog*

Wo speichert dein Programm eigentlich die Einstellungen ab?
(oder hab ich da nur irgendwo was überlesen)

Ja und kann's sein, daß du einfach einträge löschst, wenn das zugehörige Programm mal nicht gefunden werden kann?
  Mit Zitat antworten Zitat
Regan

 
Turbo Delphi für Win32
 
#20
  Alt 22. Feb 2009, 15:24
Zitat von himitsu:
nach ein paar Stunden Laufzeit bekomm ich urplötzlich Fehlermeldungen um die Ohren gehauen:

Zugriffsverletzungen bei Adresse $00000000 bzw $00000001.

Also so alle 'ner Sekunde eine Weitere ... nur via Taskmanager läßt sich das beheben *kill your prog*
Oh, nicht schön. Keine Ahnung, an was das liegt. Beobachte das einfach mal weiter.

Zitat von himitsu:
Wo speichert dein Programm eigentlich die Einstellungen ab?
(oder hab ich da nur irgendwo was überlesen)
Ja, steht im ersten Post . Anwendungsdatenordner.

Zitat von himitsu:
Ja und kann's sein, daß du einfach einträge löschst, wenn das zugehörige Programm mal nicht gefunden werden kann?
Ja, das will/muss ich aber ändern, da ich meinen USB-Stick auch nicht immer angeschlossen habe. Allerdings weiß ich noch nicht, wie ich das umsetzten werde.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz