Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   CPUiD 3.0 - Ein kleines System - Diagnoseprogramm (https://www.delphipraxis.net/49749-cpuid-3-0-ein-kleines-system-diagnoseprogramm.html)

Daniel G 16. Jan 2006 13:36

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Juchuhh... :bounce1: :firejump:

Dann kann ich mich endlich um all' die anderen kleinen Details kümmern. :zwinker:

Luckie 16. Jan 2006 13:55

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Also bei mir kommt immer noch
Zitat:

---------------------------
CPUiD 3.0
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

Basilikum 16. Jan 2006 14:44

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Daniel G
Soo... Ich hab' mal deine obige Erweiterung eingebaut, Basilikum. Ich hoffe mal, dass es jetzt keine Probleme mehr mit HT - Prozessoren gibt.

jep... jetzt startet das Tool angenehm schnell (< 1 sec) und die CPU-Frequenz stimmt !

omata 16. Jan 2006 15:00

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Ja, jetzt geht es auch bei mir. super!

Habe aber nochwas gefunden:
Auf dem Reiter BIOS, Speicher & RAM und dort Art des Slots: kann ich immer noch editieren.

MfG
Thorsten

Daniel G 16. Jan 2006 15:01

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Luckie
Also bei mir kommt immer noch
Zitat:

---------------------------
CPUiD 3.0
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

War ja klar :mrgreen:

Sind die anderen Felder auch noch leer?
kannst du mir mal 'nen Screenshot zeigen, damit ich sehen kann, welcher Wert die Ursache sein könnte?


@Basilikum: Danke :thumb:

Luckie 16. Jan 2006 15:04

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 3)
Kommen.

turboPASCAL 16. Jan 2006 17:02

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Da der Rechner von Luckie gesagt hat das '' ist kein gültiger Integerwert ist wollte ich das mal auf meinem Rechner überprüfen und musste feststellen dass das nicht simmt, denn bei mir kommt kein Fehler, also muss "" ein gültiger Integerwert sein. :wink:

Keine Fehler gefunden (bis auf das editieren). Ich hätte aber gern noch eine Gesamtsumme des Arbeitsspeichers auf einen Blick.

Daniel G 16. Jan 2006 19:58

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von turboPASCAL
Da der Rechner von Luckie gesagt hat das '' ist kein gültiger Integerwert ist wollte ich das mal auf meinem Rechner überprüfen und musste feststellen dass das nicht simmt, denn bei mir kommt kein Fehler, also muss "" ein gültiger Integerwert sein. :wink:

Hä?

Zitat:

Zitat von turboPASCAL
Ich hätte aber gern noch eine Gesamtsumme des Arbeitsspeichers auf einen Blick.

Lässt sich einrichten.

//Edit:
Ähhh.... Das wird doch schon angezeigt. Siehe Anhang, rot eingerahmt.

@Luckie:
Liegt wohl daran, dass der FSB nicht ermittelt werden kann. Ich check das mal...

negaH 16. Jan 2006 20:34

Re: CPUiD 3.0 - Ein kleines CPU - Diagnoseprogramm
 
Zitat:

Zitat von Basilikum
eigentlich deinem Vorgehen recht nahe, ausser dass ich die CPU während der Schlaufe künstlich beschäftigt halte (damit er nicht plötzlich aus langeweile irgend welche Pausen einlegt und nicht die volle Takt-Zahl gemessen wird)...

das einzige - jedoch unlösbare - Problem ist, dass man die beiden Operationen "RDTCS" und "QPC" nicht atomar durchführen kann... sobald sich ein anderer Thread zwischen diese beiden Operationen schiebt, entstehen Fehler...

Es ist exakt das was ich vorschlug ;)

Unlösbar ist relativ zu sehen. Wichtig sind zwei Dinge:

1.) die beiden Aufrufe RDTSC + PerformanceCounter müssen exakt synchron sein, d.h.

Delphi-Quellcode:

1.)
    C1 := RDTSC;
    C2 := PerformanceCounter;

2.)
    C3 := RDTSC;
    C4 := PerformanceCounter;

3.)
    F := (C3 - C1) / (C4 - C2) * PerformanceFrequency;
die Sourcezeilen 1.) und 2.) müssen exakt identisch sein, gleiche Reihenfolge der Aufrufe und sollten wenn es möglich wäre per CLI/STI geschützt werden.

2.) geht man nun rein statistisch vor so können bei beiden Aufrufen irgendwelche Ereignisse des OS dazwischenfunken exakt zwischen RDTSC und PerfoemanceFrequency. Da wir aber bei Punkt 1.) und 2.) exakt die gleiche Codesequenz benutzen ist bei beiden Sequenzen die Wahrscheinlichkeit für eine Störung exakt gleich. Wenn also bei Sequenz 1.) zb. 50% Wahrscheinlichkeit beträgt so beträgt die Wahrscheinlichkeit -50% das bei 2.) die gleiche Störung auftritt. Somit gleicht sich ein Meßfehler bei 1.) durch den Meßfehleer bei 2.) wieder aus. Der Grund für diese "gleichverteilte" Wahrscheinlichkeiten liegt in der Arbeitsweise unserer Rechner. Sie sind exakt Taktbasiert, sehr periodisch und sehr statistisch gleichverteilt.

Ergo: die resultierende Genauigkeit der Meßmethode ist bei weitem ausreichend wenn man bedenkt das der PerformanceCounter mit 1.6 MHz Auflösung läuft.

Als Meßverzögerung in Sleep(x) reicht 1 Millisekunde aus. Die Dauer dieser Zeitverzögerung hat dabei nur einen sehr unwesentlichen Einfluß auf die erreichte Genauigkeit. D.h. ob man beim Sleep(x) 1 Sekunde wartet oder nur 1 Millisekunde lang wird nur die Meßdauer verändern nicht das Resultat ! Ergo ist es mit dieser Methode nicht nur exakter sondern man kann auch die Meßzeit enorm verkürzen.

Ausreichend dürfte eine Meßdauer von 1 / PerformanceFrequency * 2 sein, da das Abtasttheorem (Nyquist) dies dikiert.

Ich benutze immer folgendes

Delphi-Quellcode:
  Tick := GetTickCount +1;
  while Tick <= GetTickCount do
    Sleep(0);
Dies dauert dann schon 800 mal länger als erforderlich. Das Sleep(0) erzwingt einen Taskswitch und sollte immer vor der Messung an Punkt 1.) und 2.) durchgeführt werden. Das liegt an der Arbeitsweise des Taksshedullers. Wechselt dieser von einem Taks zu einem anderen Task so stellt dieser sicherer das der neue aktive Task eine Mindestausführungszeit bekommt. Diese Ausführungszeit ist weit länger als die Aufrufe des RDTSC und PeformanceCounter ansich benötigen. Ergo, nachdem Sleep(0) in unseren Code zurückkehrt können wir zeimlich sicher sein das die nachfolgenden zwei Sourcezeilchens nicht extern unterbrochen werden. (Außnahmen sind Ring0 und Interrupts, die beide aber wieder hoch periodische Ereignisse sind).

Gruß hagen

turboPASCAL 16. Jan 2006 22:21

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Daniel G
Zitat:

Zitat von turboPASCAL
Ich hätte aber gern noch eine Gesamtsumme des Arbeitsspeichers auf einen Blick.

Lässt sich einrichten.

//Edit:
Ähhh.... Das wird doch schon angezeigt. Siehe Anhang, rot eingerahmt.

Stimmt... ja. Das es nicht unter "RAM" steht hat mich wohl etwas verwirrt ;)

Daniel G 17. Jan 2006 10:52

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
@turboPASCAL:

Mal sehen, vielleicht überlege ich mir bei der Anordnung noch etwas. Ich muss gestehen, dass ich diesen Tab nämlich von allen am unübersichtlichsten finde.


@Luckie:
So, ich habe mal eine neue Version hochgeladen. Jetzt müssten eigentlich alle Exceptions abgefangen und entsprechend behandelt werden. Wär gut, wenn du 's dir nochmal ansehen könntest.

Ach ja, man kann wahrscheinlich den Dialog für die Einstellungen öffnen. Ignoriert ihn einfach. :wink:

Surrounder 17. Jan 2006 11:26

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Habs bei mir auch getestet, tut bei mir eigentlich alles so weit ( P4 3,2 Ghz mit WinXP SP2 und Intel Mainboard )

Ich hab jetzt nicht alle 7 Seiten an Postings durchgelesen, also falls es schon erwähnt wurde, bitte nicht über mich herfallen.

- das Bericht erstellen und die Einstellungen tun noch nicht, aber ich nehem an dass du das in deinem Post vorher gemeint hast, man kann den Dialog ( Einstellungen ) mit Ok auch nicht schließen

- du erkennst ja dass ich eine Intel CPU habe, warum blendest Du den Reiter mit den AMD Flags nicht aus?

Ansonsten tolles Programm, mir gefallen auch die Icons sehr gut die du verwendest.

NicoDE 17. Jan 2006 11:29

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Daniel G
So, ich habe mal eine neue Version hochgeladen.

Beim Start erscheint die Fehlermeldung '" ist kein gültiger Integerwert.'.
Zudem scheint das Parsen der SMBIOS-Informationen nicht richtig zu funktionieren (mein aktuelles BIOS ist relativ eigenwillig, da die SMBIOS-Tabellen mit Vendor-spezifischen Informationen beginnen, anstatt mit den Standard-DMI-Tabellen).

ps: Screenshots auf Anfrage...

exp 17. Jan 2006 14:14

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Hi,
ich hab das Problem, dass beim Start ne Exception kommt (Ungültige Zeigeroperation).
Danach startet das Programm nicht weiter.

Daniel G 17. Jan 2006 16:03

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Surrounder
- das Bericht erstellen und die Einstellungen tun noch nicht, aber ich nehem an dass du das in deinem Post vorher gemeint hast, man kann den Dialog ( Einstellungen ) mit Ok auch nicht schließen

Jupp, das ist richtig. Inzwischen ist die Berichtfunktion schon eingebaut. Ich hab' die Version aber noch nicht hochgeladen.

Zitat:

Zitat von Surrounder
- du erkennst ja dass ich eine Intel CPU habe, warum blendest Du den Reiter mit den AMD Flags nicht aus?

Joar... Ne gute Frage, könnte ich eigentlich machen. Zack, wird eingebaut.

Zitat:

Zitat von Surrounder
Ansonsten tolles Programm, mir gefallen auch die Icons sehr gut die du verwendest.

Der Dank gebürt in diesem Falle Timon Freitag aus dem DF. Wirklich schöne Icons, sind hier zu finden.


Zitat:

Zitat von exp
Hi,
ich hab das Problem, dass beim Start ne Exception kommt (Ungültige Zeigeroperation).
Danach startet das Programm nicht weiter.

[ironie] :mrgreen: Liebe Glaskugel, sage mir....[/ironie]

Was hast du denn für ein System?

Luckie 17. Jan 2006 16:17

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Wann wird denn mein Problem behoben?

NicoDE 17. Jan 2006 16:38

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 4)
Anbei die angeforderten Screenshots...

@Luckie: keine Exception, nur die Meldung s.o.

Luckie 17. Jan 2006 16:40

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Genau wie bei mir. Hast du auch die Exception beim Start bekommen?

exp 17. Jan 2006 22:01

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
An Daniel G:
Ich habe gerade noch einmal auf meinem System dein Programm getestet.
Es ist Intel Centrino M 1.4 GHz. Beim starten krieg ich eine Fehlermeldung (siehe Anhang)

Die Daten von dem anderen Rechner reiche ich noch später nach.

Daniel G 17. Jan 2006 22:05

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Ja, Luckie ist vorhin den QT mal durchgegangen. Die Fehler hat er wohl gefunden. Ich werde morgen mal versuchen, das Problem zu beheben. Kann ja nicht angehn...

Daniel G 18. Jan 2006 12:57

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Juhuu, endlich hab' ich eine AV bekommen! (Ähm.. ja..)

Also, ich denke, dass ich schon 1 von 2 Fehlerquellen, die Luckie angegeben hat, beseitigen konnte. Wenn ich das nämlich richtig gesehen hab', hab' ich eine Struktur nicht Standardkonform implementiert. :wall:

Die andere Sache ist die Systemlaufzeit, die einen Fehler verursacht. Das muss ich mir nochmal genauer ansehen...

NicoDE 18. Jan 2006 13:09

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Daniel G
Die andere Sache ist die Systemlaufzeit, die einen Fehler verursacht.

Da das Projekt nicht OpenSource ist, kann ich nur raten... hast du zufällig die SysUpTime.pas verwendet?
(in dem Falle würde ich gerne wissen wo der Fehler auftritt :))

Daniel G 18. Jan 2006 13:17

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von NicoDE
Da das Projekt nicht OpenSource ist, kann ich nur raten... hast du zufällig die SysUpTime.pas verwendet?
(in dem Falle würde ich gerne wissen wo der Fehler auftritt :))

Ganz zufällig ja. :mrgreen:

Luckie hatte den Fehler gemeldet, bei mir läuft ja alles.

Zitat:

Zitat von Luckie
1.) GetSystemUptime an:
Unit: SysUpTime
Zeile: 253
Code: QryData := ReallocMemory(QryData, QrySize);
Bis hierher komme ich, dann bekomme ich eine AV beim ersten Schleifendurchlauf.

---------------------------
Debugger Exception Notification
---------------------------
Project CPUiD.exe raised exception class EAccessViolation with message 'Access violation at address 004024BE in module 'CPUiD.exe'. Read of address FFFFFFFC'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


NicoDE 18. Jan 2006 13:29

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ersetze die Zeile durch:
Delphi-Quellcode:
//...

          // ReallocMemory(nil, ...) might crash - buggy implementation?
          if nil = QryData then
            QryData := GetMemory(QrySize)
          else
            QryData := ReallocMemory(QryData, QrySize);

//...

Daniel G 18. Jan 2006 20:19

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Danke Nico, hab es eingebaut. Die neue Version ist Online. Hoffentlich langt ein try...except - Konstrukt.

@Luckie: Na, ahnst du schon, was ich möchte? :mrgreen:

Luckie 18. Jan 2006 20:22

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Hehe. Aber da slohnt erst, wenn die anderen Fehler auch raus sind. Und kannst du mir eine Version ohne die JVCL-Komponenten machen?

Daniel G 18. Jan 2006 20:27

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Luckie
Hehe. Aber da slohnt erst, wenn die anderen Fehler auch raus sind. Und kannst du mir eine Version ohne die JVCL-Komponenten machen?

Hmmm.. Hast du diese Echse denn schon ausprobiert? Weil, wenn es keine Exceptions gibt, läuft ja alles. Denn, wenn ich das richtig gesehen habe, liefert die Abfrage zu der Version bei deinem System nur das Datum des SMBIOS zurück, ein Zeichen dafür, dass keine Versionsinformationen bereit stehen. Vielleicht liefert es einfach nicht die verlangten Informationen?

Zu den JEDI:
Ich könnte die Bilder als *.png speichern, dann klappt das auch mit dem normalen TImage. *.gif gehen irgendwie nicht mit der Standardkomponente. Oder ich bin blind...

Luckie 18. Jan 2006 20:29

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Welche Exe? Wo finde ich denn aktuelle Exe?

Daniel G 18. Jan 2006 20:35

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Ähhh....über den Link im ersten Beitrag, wie immer? :gruebel:

http://www.danielstools.de/downloads/bin/CPUiD_BETA.zip

Achso: :wall:

Zitat:

Zitat von Daniel G
@Luckie: Na, ahnst du schon, was ich möchte? :mrgreen:

Nee, QT brauchst du dir im Moment grad' nicht nochmal ansehen. Ich hab' nur minimale Änderungen vorgenommen. Wenn es wieder eine Exception gibt, muss ich wohl ein paar Dinge mehr ändern. Das könnte dann bis zum WE dauern....

Luckie 18. Jan 2006 20:37

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Daniel G
Ähhh....über den Link im ersten Beitrag, wie immer? :gruebel:

Zuletzt bearbeitet von Daniel G am 2006-01-16, 14:22, insgesamt 6-mal bearbeitet.

Deswegen dachte ich, es wäre noch alte.

Zitat:

---------------------------
CPUiD 3.0
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

Daniel G 18. Jan 2006 20:42

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Daniel G
Ähhh....über den Link im ersten Beitrag, wie immer? :gruebel:

Zuletzt bearbeitet von Daniel G am 2006-01-16, 14:22, insgesamt 6-mal bearbeitet.

Deswegen dachte ich, es wäre noch alte.

Stimmt, hätte ich auch noch in den ersten Posten schreiben können, mein Fehler.....


Zitat:

Zitat von Luckie
Zitat:

---------------------------
CPUiD 3.0
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

Na, dann wollen wir mal nach einer StrToInt - Konvertierung suchen, die '' konvertieren will....

Daniel G 18. Jan 2006 21:00

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
soo.. Ich hab' das Programm mal um ein paar If-Abfragen erweitert. Jetzt müsste zumindestens der "Integer" - Fehler nicht mehr an meinem Code liegen.

Linke siehe erster Beitrag

Luckie 18. Jan 2006 21:10

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Leider nicht:
Zitat:

---------------------------
CPUiD 3.0
---------------------------
'' ist kein gültiger Integerwert.
---------------------------
OK
---------------------------

Daniel G 18. Jan 2006 21:13

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
NEEEEIIIIN!!! :wall: :wall: :wall:

*seufz*

Ich glaub', ich schick' dir doch mal was...

CG2003 18. Jan 2006 21:16

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Daniel G
NEEEEIIIIN!!! :wall: :wall: :wall:

*seufz*


Kopf hoch, das wird schon... (~mutmach~) :-D

Daniel G 18. Jan 2006 21:28

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von CG2003
Kopf hoch, das wird schon... (~mutmach~) :-D

Danke. :wink:

So schnell gebe ich auch nicht auf. :wink:

MagicAndre1981 18. Jan 2006 21:34

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Zitat:

Zitat von Daniel G
So schnell gebe ich auch nicht auf. :wink:

:roll: Ich hab mir den Thread lange genug durchgelesen, aber langsam schüttel ich nur mit dem Kopf. Bau doch in dein Programm eine ordentliche Loggingfunktion ein, dann weißt du doch was schief geht. MadExcept oder die JEDIs bieten dir viele Möglichkeiten der Fehlererfassung. :roll:

MfG
Ein etwas verwunderter André

Daniel G 18. Jan 2006 21:41

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Stimmt, jetzt wo du 's sagst.... Hätte ich eigentlich schon längst machen können...

Daniel 18. Jan 2006 21:46

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich erhalte bei Programmstart eine Schutzverletzung:

Code:
---------------------------
CPUiD 3.0
---------------------------
Zugriffsverletzung bei Adresse 0048D588 in Modul 'CPUiD.exe'. Lesen von Adresse FFFFFFD0.
---------------------------
OK  
---------------------------
danach zeigt sich das Programmfenster (Screenshot siehe ANhang). Die CPU wird prinzipiell korrekt erkannt.

Daniel G 18. Jan 2006 22:00

Re: CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
 
Hrmpf.... Ok, ok. Ich werde mir morgen mal die MadCollection herunterladen. 10 MB mit 56k dauert halt ein bissel. Besser, als nur Vermutungen anstellen zu müssen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.
Seite 3 von 4     123 4      

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