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 1 von 3  1 23      
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 himitsu
himitsu

 
Delphi 12 Athens
 
#2
  Alt 17. Feb 2009, 13:56
Zitat:
Auch wird bei 98% aller Programmen der Speicherbedarf angegeben
dein Screenshot sieht mehr nach 43% aus
  Mit Zitat antworten Zitat
Frankfurtoder

 
RAD-Studio 2010 Pro
 
#3
  Alt 17. Feb 2009, 14:03
1. Wenn ich auf den "Nach unten" Button klicke ohne einen Eintrag ausgewählt zu haben, bekomme ich eine Zugriffsverletzung (dabei war 1 eintrag in der Liste, wenn kein Eintrag in der Liste ist, dann keine Fehlermeldung).
2. Bei der Statistik steht "Bitte wähle einen Monat", man muss aber erst das Jahr, dann den Monat auswählen.
3. Wenn ich auf das Minus Zeichen gehe und kein Eintrag ist ausgewählt, fragt das Programm trotzdem ob der Eintrag entfernt werden soll. Da kein Eintrag ausgewählt ist passiert nichts. Kann man noch abfragen.

Das ist mir beim ersten einblick aufgefallen.

grüße
Erik
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#4
  Alt 17. Feb 2009, 14:12
@himi: die aufgeführten Programm müssen aktuell nicht laufen (0k). Es ist eine Liste der Programm, die du überwachst.
Aber ein Programm von mir hat keinen Speicherverbrauch.

Fehler:
  1. Bei der Statistik bekomme ich eine Division durch null (nach Auswahl des Monats)
  2. Nach dem Button "Einstellungen" kommt ein Fenster namens "Optionen", wenn ich das zu allererst öffne und dann wieder schließe komt die Fehlermeldung, dass der eine Eintrag doch bitte größer 24 sein soll. Die 0, die dort steht, stammt aber nicht von mir.
  3. Mein RAM wird mit 2GB angegeben, ich besitze 3GB.
  Mit Zitat antworten Zitat
Regan

 
Turbo Delphi für Win32
 
#5
  Alt 18. Feb 2009, 14:30
Zitat von sirius:
@himi: die aufgeführten Programm müssen aktuell nicht laufen (0k). Es ist eine Liste der Programm, die du überwachst.
Aber ein Programm von mir hat keinen Speicherverbrauch.
Vollkommen richtig.

Zitat von sirius:
Fehler:
  1. Bei der Statistik bekomme ich eine Division durch null (nach Auswahl des Monats)
  2. Nach dem Button "Einstellungen" kommt ein Fenster namens "Optionen", wenn ich das zu allererst öffne und dann wieder schließe komt die Fehlermeldung, dass der eine Eintrag doch bitte größer 24 sein soll. Die 0, die dort steht, stammt aber nicht von mir.
  3. Mein RAM wird mit 2GB angegeben, ich besitze 3GB.
2. habe ich gefixt. 1. hoffentlich auch.
Zu 3.: Ich kann dir nicht sagen, warum das nicht funktioniert. Ich habe den Code von hier genommen. Der Code hier im Forum macht bei mir nicht das, was er soll. Vielleicht hast du ja auch nur 2GB angesteckt .

Zitat von Frankfurtoder:
1. Wenn ich auf den "Nach unten" Button klicke ohne einen Eintrag ausgewählt zu haben, bekomme ich eine Zugriffsverletzung (dabei war 1 eintrag in der Liste, wenn kein Eintrag in der Liste ist, dann keine Fehlermeldung).
2. Bei der Statistik steht "Bitte wähle einen Monat", man muss aber erst das Jahr, dann den Monat auswählen.
3. Wenn ich auf das Minus Zeichen gehe und kein Eintrag ist ausgewählt, fragt das Programm trotzdem ob der Eintrag entfernt werden soll. Da kein Eintrag ausgewählt ist passiert nichts. Kann man noch abfragen.
Alles behoben.

Version #28 veröffentlicht. Alles weitere im ersten Post.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#6
  Alt 18. Feb 2009, 14:54
Dein Programm wird nur als 2GB-Version erstellt ... du mußt da nachträglich was patchen (in neuen Delphiversionen geht das "glaub ich" auch direkt im QuellCode, mit {$SetPEFlags ...} ) ... ich weiß zwar grad nicht was, aber such mal nach "3GB" bzw. "PE-Flags" ... ansonsten wird in deinem Programm, bei diesen Funktionen, alles auf 2 GB (Integergrenzen) runtergerundet.


Zitat von Regan:
Vollkommen richtig.
dann würde mir da aber eine maximale/durchschnittliche Angabe des Verbrauches besser gefallen, denn den aktuellen wert liefert mir auch der Taskmanager.
Miniaturansicht angehängter Grafiken
unbenannt_163.png  
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

 
Delphi 7 Enterprise
 
#7
  Alt 18. Feb 2009, 15:16
Gegen das 2GB Problem von GlobalMemorystatus, gibt es auch noch GlobalMemoryStatusEx:
Delphi-Quellcode:
type DWORDLONG=int64; //uint64 passt besser zu DWORDLONG
                      //bringt aber unter Delphi 7 falsche Werte
type TMemoryStatusEx=packed record
        dwLength: DWORD;
        dwMemoryLoad: DWORD;
        ullTotalPhys: DWORDLONG;
        ullAvailPhys: DWORDLONG;
        ullTotalPageFile: DWORDLONG;
        ullAvailPageFile: DWORDLONG;
        ullTotalVirtual: DWORDLONG;
        ullAvailVirtual: DWORDLONG;
        ullAvailExtendedVirtual: DWORDLONG;
     end;


function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx):bool; stdcall;
   external 'kernel32.dllname 'GlobalMemoryStatusEx';

procedure TForm1.Button1Click(Sender: TObject);
var mem:TMemoryStatusEx;
begin
  mem.dwLength:=sizeof(mem);
  GlobalMemoryStatusEx(mem);
  showmessage(inttostr(memEx.ullTotalPhys)); // -> 3211505664
end;
Ansonsten besteht noch der Fehler mit der Division durch 0 und mein Programm benötigt keinen Speicher (auch wenn es läuft).
Miniaturansicht angehängter Grafiken
fehler_div0_963.jpg   programm_844.jpg  
  Mit Zitat antworten Zitat
Regan

 
Turbo Delphi für Win32
 
#8
  Alt 18. Feb 2009, 15:17
Zitat von himitsu:
Dein Programm wird nur als 2GB-Version erstellt ... du mußt da nachträglich was patchen (in neuen Delphiversionen geht das "glaub ich" auch direkt im QuellCode, mit {$SetPEFlags ...} ) ... ich weiß zwar grad nicht was, aber such mal nach "3GB" bzw. "PE-Flags" ... ansonsten wird in deinem Programm, bei diesen Funktionen, alles auf 2 GB (Integergrenzen) runtergerundet.
OK, ich habe da hier was gefunden. Ich schaue mir das mal mit an. So richtig testen kann ich das aber nicht, habe ja nur 256 MB .
Zitat von himitsu:
Zitat von Regan:
Vollkommen richtig.
dann würde mir da aber eine maximale/durchschnittliche Angabe des Verbrauches besser gefallen, denn den aktuellen wert liefert mir auch der Taskmanager.
Das stimmt, ich habe es mir mit aufgeschrieben und werde das auf jeden Fall umsetzten. Kommt vielleicht sogar schon in der nächsten Version, mal schauen.


Zitat von sirius:
Gegen das 2GB Problem von GlobalMemorystatus, gibt es auch noch GlobalMemoryStatusEx:
Delphi-Quellcode:
type DWORDLONG=int64; //uint64 passt besser zu DWORDLONG
                      //bringt aber unter Delphi 7 falsche Werte
type TMemoryStatusEx=packed record
        dwLength: DWORD;
        dwMemoryLoad: DWORD;
        ullTotalPhys: DWORDLONG;
        ullAvailPhys: DWORDLONG;
        ullTotalPageFile: DWORDLONG;
        ullAvailPageFile: DWORDLONG;
        ullTotalVirtual: DWORDLONG;
        ullAvailVirtual: DWORDLONG;
        ullAvailExtendedVirtual: DWORDLONG;
     end;


procedure GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx); stdcall;
   external 'kernel32.dllname 'GlobalMemoryStatusEx';

procedure TForm1.Button1Click(Sender: TObject);
var mem:TMemoryStatusEx;
begin
  mem.dwLength:=sizeof(mem);
  GlobalMemoryStatusEx(mem);
  showmessage(inttostr(memEx.ullTotalPhys)); // -> 3211505664
end;
Zitat von sirius:
Ansonsten besteht noch der Fehler mit der Division durch 0 und mein Programm benötigt keinen Speicher (auch wenn es läuft).
Mist, das dachte ich mir. Das Problem dabei ist: Ich kann den Div durch 0-Error nicht reproduzieren. Deshalb ist es auch so schwer den Fehler zu finden.
Zu dem Speicher: Es ist seltsam, aber bei manchen Programmen wird wirklich kein Speicherverbrauch angezeigt (zumindest bei der Funktion, die ich nutze). Deshalb habe ich auch geschrieben, dass es 98% aller Programme sind .
  Mit Zitat antworten Zitat
Larsi

 
Delphi 2007 Professional
 
#9
  Alt 18. Feb 2009, 15:26
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.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#10
  Alt 18. Feb 2009, 15:33
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 ..
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:34 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