AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CPUiD 3.0 - Ein kleines System - Diagnoseprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

CPUiD 3.0 - Ein kleines System - Diagnoseprogramm

Ein Thema von Daniel G · begonnen am 15. Jul 2005 · letzter Beitrag vom 12. Jun 2008
Antwort Antwort
Seite 6 von 16   « Erste     456 78     Letzte »    
Daniel G
Tach alle zusammen,

ich dachte mir, vielleicht würde euch dieses kleine Programm gefallen.

Was macht es:

"CPUiD 3.0" liefert euch Informationen zu eurem Prozessor, der in eurem System werkelt.
Derzeit werden ~400 Prozessoren erkannt, darunter auch einige Exoten von NSC oder SiS.


Außerdem zeigt euch dieses Programm noch Informationen zu den im System verwendeten Arbeitsspeicher und BIOS an, sowie einige allgemeine Systeminformationen, wie Betriebssystem, Vergangene Zeit seit Windowsstart u.v.m.


Hätte ich das alles alleine geschrieben, wäre ich vermutlich immer noch am Schreiben.

Deshalb vielen Dank an scp, der mir eine aktualisierte Version seiner Unit "CPUIDEx.pas" zu Verfügung gestellt hat.
Außerdem danke ich noch Nico für seine "BIOSHelp" - Unit, die mir als Grundlage für die neuen Features gedient hat.

Neuste Version:
CPUiD 3.0 (~668 kb)
Screenshot (~60 kb)

DBug - Version:
Falls ihr irgendwelche unerklärlichen Exceptions bekommt, solltet ihr die DBug - Version herunterladen und den Report hier anhängen oder mir per E-Mail schicken.
http://www.danielstools.de/downloads...D_3_0_DBug.exe (~756 kb)

____________________________________
************************************
Version 3.0.3
Datum: 26.01.2006
Changes:


(von mir)
* CPUiD ist jetzt bilingual: Deutsch und Englisch. Diese Sprachen können über das Einstellungenmenü verändert werden.
* Zahlreiche Fehler entfernt
+ "CPU - FLAGS" zum Report hinzugefügt


____________________________________
************************************
Version 3.0.1
Datum: 15.01.2006
Changes:


(von mir)
- Schwere Fehler behoben
____________________________________
************************************
Version 3.0.0
Datum: 13.01.2006
Changes:


(von scp)
* Verbessern der Cache - Erkennung


(von mir)
+ SMBIOS implementiert (Vielen Dank an NicoDE für seine Unit)
+ Daten zum Arbeitsspeicher unter Windows werden angezeigt
+ Es ist nicht mehr möglich, den Report als HTML - Datei zu speichern. Stattdessen wird er
als Plaintext gespeichert.
+ Das Logo des Herstellers wird, falls möglich, angezeigt
+ Das Programm verfügt jetzt über eine Toolleiste, die Zugriff auf einige Features bietet
+ Shortcuts
+ "Über..." - Tab hat jetzt eine scrollende Credits - Liste
+ Im "Über..." - Tab wird ein Logo angezeigt.
+ Die Betriebssystemversion wird angezeigt
+ Der Benutzer- und/oder Computername wird angezeigt (soweit verfügbar)
* Verbesserte CPU - Geschwindigkeitsmessung


Tja, wenn euch gerade langweilig ist, könnt ihr ja mal einen dezenten Blick darauf werfen. Ich wäre euch auf jedenfall für jede Art von Feedback dankbar.

so long,
Daniel

[Edit] Schlechtschreibfehler [/Edit]
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#51
  Alt 3. Jan 2006, 15:27
Nein, ich meine CPUID, so heißt doch das Programm von Daniel oder? Und das scheint eben nicht die Prozesspriorität entsprechend zu setzen, das sollte man aber machen, um einen möglichst genauen Wert zu bekommen.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#52
  Alt 3. Jan 2006, 15:37
ach stimmt ja, X'D
aber daß machen eh kaum jemand
und selbst Hagen (also auch ich) stellt das nicht extra um
und es funktioniert dennoch ^^
  Mit Zitat antworten Zitat
Daniel G
 
#53
  Alt 3. Jan 2006, 20:57
Zitat von Luckie:
Nein, ich meine CPUID, so heißt doch das Programm von Daniel oder?
Ah, nicht ganz:

CPUiD

Man achte auf das kleine "i" in Anlehnung an mein Lieblings - Delphi - Forum.

Zum Geschwindigkeitsproblem:
Ich werde noch einige weitere Tests mit anderen Methoden machen. Woll'n wir mal sehen...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH
 
#54
  Alt 4. Jan 2006, 13:20
Zitat:
Vor der Messung sollte die Priorität des Prozess auf TIME_CRITICAL gesetzt werden und danach natürlich wieder zurück. Ich habe festgesttelt, dass dies bei CPUID wohl nicht passiert, zumindest zeigt der Taskmanager nichts an in dieser Richtung.

Nein das ist nicht wirklich nötig. Es hängt nur von der verwendeten Methode der Zeitmessung ab.
Es gibt die absolute Messung und die relative Messung. Misst man zb. per einfachem Sleep(1000) so ist dies eine absolute Messung und bei dieser sollte man mit hoher Priorität messen. Nimmt man aber eine relative Messung, zb. RDTSC + PerformanceCounter dann x Millisekunden warten und dann wieder RDTSC + PeformanceCounter dann hat man qausi zwei unabhänig laufende Zeitbasen in Form von der Differenz in RDTSC und PerformanceCounter. Die Wartezeit zwischen den Messungen wird dann quasi irrelevant da beide Counter unabhängig vom Tasksheduller arbeiten. Davon abgesehen ist der Performancecounter weit genauer in der Auflösung als Sleep().

Ich hatte hier im Forum aber schon mal meine Messmethode erklärt und auch auf exakt diese Vorteile gegenüber Sleep() oder GetTickCount() hingewiesen.

Es sieht also so aus:
- man benötigt eine möglichst genaue und unabhängig laufende Zeitbasis, zb. der Peformancecounter läuft mit 1.6 MHz
- man führt nun eine Relativmessung durch

Code:
  Basis := PerformanceCounter;
  Messung := RDTSC;

  warte par Millisekunden, könnte auch Sleep() sein, ist aber irrelavent

  Basis := PerformanceCounter - Basis;
  Messung := RDTSC - Messung;

  Frequenz := Basis / PerformanceFrequency * Messung;
PerformanceFrequency ist meistens 1.6Mhz, also auf 1/1600000 Sekunde exakt. Sleep ist 1/1000 Sekunde exakt und der Tasksheduller funkt auch noch dazwischen.

Misst man mit der Relativmessung eine 3.2GHz CPU aus so wird man also auf +-2000 Taktzyklen exakt diese berechnen können. Mit Spleep()/GetTickCount im besten Falle auf +-3200000 Taktzyklen. Der Unterschied un der Genauigkeit beträgt also das 1600'fache.

Benutzt man Sleep() und TIME_CRITICAL Priorität so ist das kein Garant dafür das zb. Sleep(100) auch wirklich 100 Millisekunden dauert. Denn die Betriebsystemsoftware benötigt für das Sleep() selber immer auch einigen Overhead an zeit. Angenommen das wären bei Sleep(100) nur 1 Millisekunde mehr, also Sleep(100) dauert 101 Millisekunden so hat man bei 1 Sekunde Messdauer schon 10% Fehler drinnen. Eine 3.2GHz CPU würde also als 2.9GHz CPU gemessen.

Testet man Sleep(100) mit dem PerformanceCounter so wird man feststellen das auf den meisten CPUs das Betriebsystem eine feste Konstante als Overhead davon abzieht. D.h. Sleep(100) wird in den meisten fällen weniger als 100ms dauern. Ergo: eine darauf basierende CPU Frequenzberechnung wird die CPU Frequenz leicht überhöht ausrechnen.

RDTSC und der Peformancecounter sind in Hardware völlig unabhängig laufende Zähler/Timer. RDTSC hat die Frequenz zum aktuellen internen Takt der CPU. PerformaceCounter basiert auf der Realtimeclock im RTC BIOS Chip und läuft mit ca. 1.6MHz. In einigen Rechnern wird der PerformanceConterdurch das OS aus dem RDTSC generiert. Dies wird dann auf Nootbook CPUs bzw. CPU's mit variable Taktanpassung zu Problemen führen.

Gruß Hagen
  Mit Zitat antworten Zitat
Daniel G
 
#55
  Alt 14. Jan 2006, 23:29
(Danke, Hagen )

Pre-Alpha Version 3.0

Um euch vorzuwarnen:
Bei dieser Version handelt es sich um eine absolut frühe Version, die noch nicht aus dem BETA - Stadium heraus ist. Einige Dinge müssen noch gefixt und implementiert werden.

Dazu gehören:

- Exceptionhandling
- Funktionstest unter Windows 9x
- "CPU - Cache" - Tab benötigt noch etwas Bearbeitungszeit
- Hilfe-Datei
- Report-Funktion
- Einstellungs-Dialog


Weiterhin gilt übrigens:

Das Programm benötigt keinen Treiber und keine Administratorrechte


Mal eine kleine Liste von Dingen, die neu sind:

Allgemein:
- GUI einer kleinen Schönheitskur unterzogen

Prozessorinformationen:

- Anzeige des FSB und des Multiplikators*
- Anzeige des Hersteller - Logos

Allgemeine Informationen(OS, Benutzername, Computername, System - UpTime)* (NEU)

Speicherinformationen(Bandbreite, Größe, Takt)* (NEU)


*Was genau an Informationen angezeigt wird, hängt von der SMBIOS - Version ab. Is' aber trotzdem 'ne dolle Sache

Download:
CPUiD PreAlpha 3.0 (~350 kb)
Screenshot (~60 kb)
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

 
Delphi 7 Enterprise
 
#56
  Alt 14. Jan 2006, 23:36
4V Core-Spannung bei einem Athlon XP T-Bred-B

Ich glaub da stimmt was nicht
André
  Mit Zitat antworten Zitat
Daniel G
 
#57
  Alt 14. Jan 2006, 23:37
Zitat von MagicAndre1981:
4V Core-Spannung bei einem Athlon XP T-Bred-B

Ich glaub da stimmt was nicht
Let's burn that shit!

Aber komisch... Immerhin wirds bei mir korrekt angezeigt... Ich hole mir die Informationen nur via SMBIOS...

EDIT:
Welche SMBIOS - Version haddu denn?
  Mit Zitat antworten Zitat
Basilikum

 
Delphi 7 Professional
 
#58
  Alt 15. Jan 2006, 00:00
irgendwo stimmt etwas nicht bei der Frequenz-Messung... die Messung dauert ziemlich exakt 30s, wobei der eine "CPU" zu 100% ausgelastet ist... (Pentium IV 2.8 GHz, Hyperthreading enabled)... FSB stimmt mit Angabe von CPU-Z überein...
Miniaturansicht angehängter Grafiken
screen_shot_135.jpg  
  Mit Zitat antworten Zitat
Daniel G
 
#59
  Alt 15. Jan 2006, 00:13
In der Tat komisch, zumal, wie ich gerade sehe, weder der Benutzername noch der Computername ermittelt wird...

Bist du als Admin oder mit eingeschränkten Nutzerrechten angemeldet?
  Mit Zitat antworten Zitat
Basilikum

 
Delphi 7 Professional
 
#60
  Alt 15. Jan 2006, 00:23
Zitat von Daniel G:
In der Tat komisch, zumal, wie ich gerade sehe, weder der Benutzername noch der Computername ermittelt wird...

Bist du als Admin oder mit eingeschränkten Nutzerrechten angemeldet?
diese beiden Felder sind meiner Zensur zum Opfer gefallen... sie wurden einwandfrei ermittelt..... angemeldet bin ich mit lokalen Administratoren-Privilegien...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 16   « Erste     456 78     Letzte »    


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 00:00 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