Autor Beitrag
Alice
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 31.01.09 19:29 
hi all,

hiermit meine ich nicht, dass z.b. ein Quad 4cores inne hat, nein.

zb.: auf einem mainboard sind 2 cpu's verbaut, z.b. zwei quads je 4cores.

wie oder wo bekomme ich die info darüber das 2 cpu's verbaut sind?

cu
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Sa 31.01.09 19:33 
Alice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 31.01.09 19:45 
hi,

user profile iconnagel hat folgendes geschrieben Zum zitierten Posting springen:
www.delphipraxis.net/topic7462.html


genau diese funk. meinte ich nicht.

diese zeigt mir auf einem quad 4-cores an.
ich will jedoch die *anzahl der verbauten cpu's.
in meinem falle wäre das dann 1.

auf einem board mit 2 verbauten cpu's (also einem board mit 2 cpu sockets)
wären es mit o.g. funk. (2xQuad) 8-cores.

ich suche jedoch die *2* ... und nicht die 8...

cu
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Sa 31.01.09 19:49 
Oh sorry, ich hab deine Frage schon richtig verstanden, aber die verlinkte Funktion nicht getestet, sondern dem Beschreibungstext nach gedacht, sie würde die Anzahl zurückgeben.
Webo
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 577
Erhaltene Danke: 14

Win 7, Debian
C# (Visual Studio 2013), PHP, C, C++ (Eclipse, KDevelop)
BeitragVerfasst: Sa 31.01.09 19:52 
Also die Funktion funktioniert bei mir:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function GetNumberOfProcessors: Integer;
var
  SystemInfo: TSystemInfo;
begin
  GetSystemInfo(SystemInfo);
  Result:=SystemInfo.dwNumberOfProcessors;
end;


Grüße

Webo

[Edit]: Ich hätt mir den Link anschauen sollen.

_________________
Man kann nur das aus dem Ärmel schütteln, was man auch vorher reingesteckt hat.
Alice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 31.01.09 20:15 
hi,

user profile iconWebo hat folgendes geschrieben Zum zitierten Posting springen:
Also die Funktion funktioniert bei mir:
[Edit]: Ich hätt mir den Link anschauen sollen.


ich hoffe du meinst damit, dass es hiermit *nicht geht.
bitte die fragestellung durchlesen.

cu
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 31.01.09 20:20 
Schau dir mal CxCpu an, ich habe zwar diese Funktionalität dort bisher nicht gesucht, aber alles was mit Informationen zur CPU zu tun hatte konnte ich bisher damit umsetzen.
www.torry.net/authorsmore.php?id=1084
Zudem ist es Freeware inkl. Quelltext.
Alice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 31.01.09 20:57 
hi,

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir mal CxCpu an, ich habe zwar diese Funktionalität dort bisher nicht gesucht, aber alles was mit Informationen zur CPU zu tun hatte konnte ich bisher damit umsetzen.
www.torry.net/authorsmore.php?id=1084
Zudem ist es Freeware inkl. Quelltext.


ne, ghet leider nicht.

cu
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 31.01.09 23:40 
Windows kann nicht ziwschen physischen und virtuellen CPUs unterscheiden. Wenn du also eine quadcore hast, "dent" Windows dies wären auch vier CPUs. Aber viele Hardwareinformationen bekommt man auch über die Setup-API. Evntuell guckst du mal, ob du so die Anzahl der physischen CPUs erhälts. Allerdings weiß ich nicht, wo man an Übersetzungen der Setup-API Header-Dateien kommt.

Was mir gerade noch einfällt, hast du schon mal probiert die Informazionen über WMI zu beziehen?
Alice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 01.02.09 12:09 
hi,

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
Windows kann nicht ziwschen physischen und virtuellen CPUs unterscheiden. Wenn du also eine quadcore hast, "dent" Windows dies wären auch vier CPUs. Aber viele Hardwareinformationen bekommt man auch über die Setup-API. Evntuell guckst du mal, ob du so die Anzahl der physischen CPUs erhälts. Allerdings weiß ich nicht, wo man an Übersetzungen der Setup-API Header-Dateien kommt.

Was mir gerade noch einfällt, hast du schon mal probiert die Informazionen über WMI zu beziehen?


bei jedi gibt es diese übersetzung, jedoch konnte ich dort nicht passendes finden.
unter wmi habe ich eben mal nachgesehen, auch hier scheint es keine info darüber zu geben, leider.

cu
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 01.02.09 15:57 
Unter C#.NET soll es wohl so gehen:
dotnet-snippets.de/d...rmitteln-SID375.aspx

Ist natürlich ohne .NET dann etwas schwierig :lol:


EDIT: Ich kann dir aber eine .NET-DLL zur Verfügung stellen (inklusive Unit zur Verwendung in Delphi ohne .NET). Die DLL muss aber dann über RegASM registriert werden, falls dich das nicht stört.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 01.02.09 17:14 
user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
Ist natürlich ohne .NET dann etwas schwierig :lol:
System.Management ist doch nur ein .Net-Wrapper der WMI ;) .

_________________
>λ=
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 01.02.09 17:25 
Und warum kann man dann nicht mit WMI direkt arbeiten?

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 01.02.09 17:29 
Weil WMI dafür wohl ebenfalls keine Möglichkeit anbietet:
user profile iconAlice hat folgendes geschrieben Zum zitierten Posting springen:
unter wmi habe ich eben mal nachgesehen, auch hier scheint es keine info darüber zu geben, leider.

Ich muss das einmal an einem echten Mehrprozessor-PC ausprobieren, insbesondere was dazu einige Systeminformationsprogramme sagen, deren Funktionsweise ich kenne, aber das geht im Moment nicht. Vermutlich nächste Woche irgendwann.
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: So 01.02.09 18:01 
Sollte über die Suche in der Entwickler-Ecke CPUID Instruktion gehen, ist aber etwas kompliziert. Welche Informationen du mit Hilfe der CPUID-Instruktion auslesen kannst findest du hier: www.sandpile.org/ia32/cpuid.htm

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 01.02.09 19:11 
@Motzi: Das funktioniert zwar über CPUID für einen Prozessor (physisch), aber wenn man mehrere drin hat, bekommt man nur für einen die Info. Hier muss man schon über ACPI die Informationen abfragen (d.h. aus dem physikalischen Speicher die Deskriptoren klauben) ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 01.02.09 19:12 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Weil WMI dafür wohl ebenfalls keine Möglichkeit anbietet
Dem .NET-Code nach gibt es eine und die sollte dann natürlich auch unter Delphi verfügbar sein :nixweiss: .

_________________
>λ=
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: So 01.02.09 19:46 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
@Motzi: Das funktioniert zwar über CPUID für einen Prozessor (physisch), aber wenn man mehrere drin hat, bekommt man nur für einen die Info. Hier muss man schon über ACPI die Informationen abfragen (d.h. aus dem physikalischen Speicher die Deskriptoren klauben) ...

Das ist richtig, aber du kannst zuerst mit GetSystemInfo die Anzahl der Prozessoren abfragen und dann der Reihe nach mit SetThreadAffinityMask festlegen auf welchem Prozessor der Thread laufen soll und für diesen dann per CPUID alle Informationen auslesen.

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 01.02.09 19:56 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Weil WMI dafür wohl ebenfalls keine Möglichkeit anbietet
Dem .NET-Code nach gibt es eine und die sollte dann natürlich auch unter Delphi verfügbar sein :nixweiss: .
Stimmt, ich hatte mich jetzt auf die Aussage verlassen: :oops:
user profile iconAlice hat folgendes geschrieben Zum zitierten Posting springen:
unter wmi habe ich eben mal nachgesehen, auch hier scheint es keine info darüber zu geben, leider.
Aber der Dokumentation nach zu urteilen (und dem Beispiel) stimmt das ja nicht.

WMI Dokumentation zu Win32_Processor hat folgendes geschrieben:
On a multiprocessor computer, one instance of the Win32_Processor class exists for each processor.
und
WMI Dokumentation zu Win32_Processor hat folgendes geschrieben:
NumberOfCores
Number of cores for the current instance of the processor. A core is a physical processor on the integrated circuit. For example, in a dual-core processor this property has a value of 2. For more information, see Remarks.
Alice Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 07.02.09 15:05 
hi,

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Weil WMI dafür wohl ebenfalls keine Möglichkeit anbietet
Dem .NET-Code nach gibt es eine und die sollte dann natürlich auch unter Delphi verfügbar sein :nixweiss: .
Stimmt, ich hatte mich jetzt auf die Aussage verlassen: :oops:
user profile iconAlice hat folgendes geschrieben Zum zitierten Posting springen:
unter wmi habe ich eben mal nachgesehen, auch hier scheint es keine info darüber zu geben, leider.
Aber der Dokumentation nach zu urteilen (und dem Beispiel) stimmt das ja nicht.


so, eben mal auf einem serverboard, 2cpus zu je 4cores in der WMI nachgesehen, win2003 server,
hier ist nicht dergleichen zu finden, selbst der CPU-typ wird falsch ausgegeben!?!

aber irgendwie muss das doch gehen, tools wie cpuz zb. erkennen dies ja auch.

cu