| Autor |
Beitrag |
Regan
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Sa 02.06.07 13:59
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).
| Changelog powered by DevProject Manager: |
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
Zuletzt bearbeitet von Regan am Do 13.01.11 15:07, insgesamt 13-mal bearbeitet
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 02.06.07 14:10
Und für was braucht man das? Ich meine, ich kann jetzt nicht wirklich einen Sinn erkennen. 
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Sa 02.06.07 18:19
Das braucht man dafür, wenn man wissen will, wie lange man eine Anwendung oder Windows laufen hat.
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: So 11.05.08 13:42
Hy,
ich habe gerade eine neue Version hochgeladen. Diese unterstützt endlos viele Anwendungen, die überwacht werden. Die Überwachnung wurde in Threads ausgelagert und beinhaltet auf Wunsch auch eine Statistikfunktion.
Download wie immer im ersten Post.
Hiermit möchte ich auch nochmals Silas für seine Unit FastIniFiles danken.
Wie immer freue ich mich über Wünsche, Anregungen und Kritik.
MfG
Regan
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: So 11.05.08 14:04
wozu brauch ich wissen wie lange ich ein programm ausgeführt hab?
BigBrother is watching you 
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: So 11.05.08 14:10
Könntest du vielleicht einen Screenshot anhängen? Muss ich deinem Programm erst mitteilen, dass ich eine Anwendung starte/schließe (also praktisch ein einfacher Counter) oder bemerkt das dein Programm automatisch (nur so wäre es IMHO überhaupt ein wenig sinnvoll)?
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: So 11.05.08 15:06
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: So 11.05.08 17:03
huuuuuh hat folgendes geschrieben: | | wozu brauch ich wissen wie lange ich ein programm ausgeführt hab? |
Um zum Beispiel festzustellen, wie lange du Windows laufen hast oder wie lange du Spiele spielst.
huuuuuh hat folgendes geschrieben: | BigBrother is watching you |
Du kannst es ja auch als Quickstarter nutzen.
Jakob_Ullmann hat folgendes geschrieben: | | Könntest du vielleicht einen Screenshot anhängen? |
Hab ich  .
Jakob_Ullmann hat folgendes geschrieben: | | Muss ich deinem Programm erst mitteilen, dass ich eine Anwendung starte/schließe (also praktisch ein einfacher Counter) oder bemerkt das dein Programm automatisch (nur so wäre es IMHO überhaupt ein wenig sinnvoll)? |
Es bemerkt automatisch, wenn der Prozess läuft und startet die Aufzeichnung.
Silas hat folgendes geschrieben: | Die Idee an sich ist schonmal recht gut. |
Danke.
Silas hat folgendes geschrieben: | Ein paar Vorschläge:
- Einen wirklich praktischen Nutzen hätte dein Programm, wenn es die maximale / durchschnittliche CPU- / Speicherauslastung anzeigen würde. Dann könnte man sich schnell einen Überblick über die Ressourcenfresser verschaffen.
|
Muss ich mal schauen, ob ich das einbaue. Das Programm frisst schon so viel zu viel Speicher  .
Silas hat folgendes geschrieben: | - Man sollte beim erstellen eines Eintrags die Werte direkt bearbeiten können und als Default-Anzeigename sollte der Dateiname der EXE ohne '.exe' verwendet werden.
|
Wird geändert.
Silas hat folgendes geschrieben: | - Es sollte mit poScreenCenter gestartet werden
|
Geändert.
Silas hat folgendes geschrieben: | - Man sollte die Fenstergröße ändern können
|
Geändert.
Silas hat folgendes geschrieben: | - Nimm für die Modalfenster bsDialog, sonst sieht's so gedätscht aus.
|
Geändert.
Silas hat folgendes geschrieben: | - Beim einem "Doppelstartversuch" sollte statt der Meldung das Programmfenster wieder angezeigt werden.
|
Muss ich mal schauen, wie ich das einbaue.
Silas hat folgendes geschrieben: | - Ein Button zum Hinzufügen aller momentan laufenden Prozesse sowie die Option, alle jemals laufenden Prozesse zu überwachen, wäre gut (evtl. mit Filter/Blacklist).
|
Wie meinst du das mit "jemals laufende Prozesse"? Mein Programm weiß doch nicht, außer es speichert die Prozesse, was am Vortag lief  .
Silas hat folgendes geschrieben: | - Ein Bug: Während ein zu messendes Programm läuft, bekommt man beim Versuch, das Statistikfenster zu schließen, eine "ungültige Zeigeroperation" geworfen.
|
Kann ich nicht reproduzieren. Könntest du mir vielleicht nochmal die Reihenfolge der Klicks sagen?
Silas hat folgendes geschrieben: | Edit: Regan hat folgendes geschrieben: | | Hiermit möchte ich auch nochmals Silas für seine Unit FastIniFiles danken. | |
 .
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: So 11.05.08 18:08
Regan hat folgendes geschrieben: | | Die Überwachnung wurde in Threads ausgelagert. |
Regan hat folgendes geschrieben: | Muss ich mal schauen, ob ich das einbaue. Das Programm frisst schon so viel zu viel Speicher . |
kA, wie du das implementiert hast, aber warum hast du das mit Threads gelöst? Ein Timer auf 2-3 Sekunden wäre resourcenschonend und auf 1-2 Sekunden Messfehler kommt es doch eh nicht an, oder?
Regan hat folgendes geschrieben: | Wie meinst du das mit "jemals laufende Prozesse"? Mein Programm weiß doch nicht, außer es speichert die Prozesse, was am Vortag lief . |
Da habe ich mich ein wenig ungünstig ausgedrückt, ich meinte damit, dass dein Programm beim überwachen der Prozessliste sich alle jemals gelaufenen merkt, um sie zählen zu können.
Regan hat folgendes geschrieben: | Silas hat folgendes geschrieben: | - Ein Bug: Während ein zu messendes Programm läuft, bekommt man beim Versuch, das Statistikfenster zu schließen, eine "ungültige Zeigeroperation" geworfen.
| Kann ich nicht reproduzieren. Könntest du mir vielleicht nochmal die Reihenfolge der Klicks sagen? |
Oh, hab gerade gemerkt dass meine Beschreibung so nicht ganz stimmt: Der Bug tritt auf, während ein Programm läuft, das über dein Programm gestartet wurde (also über "Ausführen").
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: So 11.05.08 20:19
Silas hat folgendes geschrieben: | Regan hat folgendes geschrieben: | | Die Überwachnung wurde in Threads ausgelagert. |
Regan hat folgendes geschrieben: | Muss ich mal schauen, ob ich das einbaue. Das Programm frisst schon so viel zu viel Speicher . | kA, wie du das implementiert hast, aber warum hast du das mit Threads gelöst? Ein Timer auf 2-3 Sekunden wäre resourcenschonend und auf 1-2 Sekunden Messfehler kommt es doch eh nicht an, oder? |
Naja. Messfehler sollten eigentlich nicht sein. Und die Threadvariante ist nach meinen Messungen wesentlich schneller und verbraucht weniger Prozesserleistung.
Silas hat folgendes geschrieben: | Regan hat folgendes geschrieben: | Wie meinst du das mit "jemals laufende Prozesse"? Mein Programm weiß doch nicht, außer es speichert die Prozesse, was am Vortag lief . | Da habe ich mich ein wenig ungünstig ausgedrückt, ich meinte damit, dass dein Programm beim überwachen der Prozessliste sich alle jemals gelaufenen merkt, um sie zählen zu können. |
Aber du weißt schon, dass dadurch das Programm sehr langsam wird. Deshalb werde ich mir das nochmals gründlich überlegen müssen. Das Programm ist eigentlich nur dazu gedacht, dass man sieht, wie lange man Windows laufen hat und wie oft und lange man einige Applikationen nutzt.
Silas hat folgendes geschrieben: | Regan hat folgendes geschrieben: | Silas hat folgendes geschrieben: | - Ein Bug: Während ein zu messendes Programm läuft, bekommt man beim Versuch, das Statistikfenster zu schließen, eine "ungültige Zeigeroperation" geworfen.
| Kann ich nicht reproduzieren. Könntest du mir vielleicht nochmal die Reihenfolge der Klicks sagen? | Oh, hab gerade gemerkt dass meine Beschreibung so nicht ganz stimmt: Der Bug tritt auf, während ein Programm läuft, das über dein Programm gestartet wurde (also über "Ausführen"). |
Kann ich reproduzieren und sollte gefixt sein.
Update: 3.1: Fehlerbehebung und Designzeugs.
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: So 11.05.08 20:31
Regan hat folgendes geschrieben: | | Aber du weißt schon, dass dadurch das Programm sehr langsam wird. |
Timer verbrauchen (zumindest in allen meinen bisherigen Programmen) auch bei theoretischen 1 ms Intervall sowieso so gut wie keine Prozessorzeit, und ich denke 1 Sekunde Messgenauigkeit langen voll und ganz. Du liest die Prozessliste für die Überprüfung doch sowieso, oder? Und das Aktualisieren der Prozessorzeit/auslastung darf ruhig niedriger getaktet sein.
Regan hat folgendes geschrieben: | | Das Programm ist eigentlich nur dazu gedacht, dass man sieht, wie lange man Windows laufen hat und wie oft und lange man einige Applikationen nutzt. |
Ja, aber diese Features würden das Tool wesentlich interessanter machen, sieh dir doch mal das restliche Feedback an 
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
huuuuuh
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: So 11.05.08 21:27
der timer geht bei werten <50ms automatisch auf 50ms
ein intervall kleiner als 50ms geht also nich
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Mo 12.05.08 06:33
Silas hat folgendes geschrieben: | | Timer verbrauchen auch bei theoretischen 1 ms Intervall sowieso so gut wie keine Prozessorzeit. |
huuuuuh hat folgendes geschrieben: | | der timer geht bei werten <50ms automatisch auf 50ms |
Stimmt zum Teil. Bei Werten < 25 ms wird der Windows-Timer unzuverlässig, theoretisch gibt es aber keine Untergrenze.
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Mo 12.05.08 15:38
Silas hat folgendes geschrieben: | | Du liest die Prozessliste für die Überprüfung doch sowieso, oder? |
Nein  .
Silas hat folgendes geschrieben: | | Und das Aktualisieren der Prozessorzeit/auslastung darf ruhig niedriger getaktet sein. |
OK. Du hast mich überzeugt. Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link?
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Mo 12.05.08 15:45
Such mal im Forum. Ich hab auch mal danach gesucht und was gefunden.  Allerdings habe ich es nicht verwendet, weil es viel zu kompliziert war. Und Code, den ich nicht verstehe, baue ich nur ungern irgendwie ein (außer vielleicht SynEdit oder sowas), und erst recht nicht, wenn das ganze Programm daraus besteht. 
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Mo 12.05.08 20:52
Regan hat folgendes geschrieben: | | Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link? |
In der psapi.dll gibt es eine Funktion namens GetProcessMemoryInfo. Die wirst du wahrscheinlich selber einbinden müssen, weil Delphi sie nicht in der Windows.pas hat. Google einfach mal danach. 
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Mi 14.05.08 17:59
Silas hat folgendes geschrieben: | Regan hat folgendes geschrieben: | | Aber wie komme ich von meiner Exedatei an die Speicherauslastung? Hast du da vielleicht einen Link? |
In der psapi.dll gibt es eine Funktion namens GetProcessMemoryInfo. Die wirst du wahrscheinlich selber einbinden müssen, weil Delphi sie nicht in der Windows.pas hat. Google einfach mal danach.  |
OK. Ich habs jetzt eingebaut, allerdings noch keine neue Version hochegladen.
Bezüglich der statistischen Erfassung der Daten: Wie hast du dir das vorgestellt? Du hast ja etwas von maximalen und Durchschnitswert gesagt. Soll das ganze irgendwie gespeichert werden?
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Mi 14.05.08 18:44
Nun um zu wissen, was das meist ausgeführte Programm ist, brauch ich ja nur mal ins Startmenü von WinXP gucken und ich stelle fest, dass es Firefox, Delphi 7, Delphi 5, Word, Photoshop und Excel sind.  Ne, aber warum speicherst du die Daten nicht in einer Datenbank oder Textdatei und stellst das dann als Liniendiagramm dar? Sowas könntest du auch mit TChart realisieren, wenn du keine Lust hast, dich selbst um die Diagramme zu kümmern (wobei das ja nicht so schwer sein dürfte). 
|
|
Regan 
      
Beiträge: 2157
Erhaltene Danke: 72
Java (Eclipse), Python (Sublimetext 3)
|
Verfasst: Mi 14.05.08 18:47
Jakob_Ullmann hat folgendes geschrieben: | Nun um zu wissen, was das meist ausgeführte Programm ist, brauch ich ja nur mal ins Startmenü von WinXP gucken und ich stelle fest, dass es Firefox, Delphi 7, Delphi 5, Word, Photoshop und Excel sind.  |
Ich will aber die Programme haben, die am längsten laufen  .
Jakob_Ullmann hat folgendes geschrieben: | Ne, aber warum speicherst du die Daten nicht in einer Datenbank oder Textdatei und stellst das dann als Liniendiagramm dar? Sowas könntest du auch mit TChart realisieren, wenn du keine Lust hast, dich selbst um die Diagramme zu kümmern (wobei das ja nicht so schwer sein dürfte). |
Hast du dir das Programm mal runtergeladen? Anscheinend nicht  .
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Mi 14.05.08 18:50
Regan hat folgendes geschrieben: | | Wie hast du dir das vorgestellt? Du hast ja etwas von maximalen und Durchschnitswert gesagt. Soll das ganze irgendwie gespeichert werden? |
Ja, ich dachte, dass du es einfach so wie die Laufzeit des Programms mitspeicherst.
Der Maximalwert sollte ja klar sein, du überprüfst einfach, ob er größer als der letzte Maximalwert war, und speicherst immer den letzten.
Den Durchschnittswert berechnest du dann einfach mit Delphi-Quelltext 1:
| DurchschnittNeu = ( DurchschnittAlt * AnzahlMessungenBisher + NeuerWert ) / AnzahlMessungenGesamt | . Hier genügt es also auch, wenn du den letzten Durchschnittswert und die Anzahl Messungen speicherst.
Edit: Für den Durchschnitt würde ich dann natürlich ein Float nehmen 
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
|