![]() |
Re: ETS - Der ExeTimeSaver #28
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:
Der Fehler dürfte aber daran liegen, dass du das Array irgendiwe vorzeitig gekürzt hast.
//so in etwa könnte es aussehen
something := somthingelse div (length(StringArray)-1) ; 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. |
Re: ETS - Der ExeTimeSaver #28
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 :roll: 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:
und die Anzeige eventuell irendwie so
// 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;}
Delphi-Quellcode:
if ProgrammIsAktiv then
{Speicher} := Speicherbedarf else {Speicher} := 'inaktiv'; {Durchschnitt} := Durchschnittsumme div Min(Durchschnittzähler, 1); {Maximal} := MaximalerSpeicher; |
Re: ETS - Der ExeTimeSaver #28
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Version #29 hochgeladen. Ich hoffe, dass der Div durch 0 Error jetzt endlich behoben ist. Auch sollte die 2 GB Grenze nun durchbrochen sein. |
Re: ETS - Der ExeTimeSaver #28
Zitat:
Testen kann ich frühestens wieder am Montag. Zitat:
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. |
Re: ETS - Der ExeTimeSaver #28
Zitat:
Zitat:
nja gut, muß ja nicht unbedingt sein ... wer startet auch ein programm gleichzeitig mehrfach :stupid: |
Re: ETS - Der ExeTimeSaver #28
Zitat:
|
Re: ETS - Der ExeTimeSaver #28
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: ETS - Der ExeTimeSaver #28
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 |
Re: ETS - Der ExeTimeSaver #28
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? |
Re: ETS - Der ExeTimeSaver #28
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz