AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Externe Exe starten und dieser einen best. Kern zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

Externe Exe starten und dieser einen best. Kern zuweisen

Ein Thema von Aurelius · begonnen am 2. Okt 2007 · letzter Beitrag vom 1. Feb 2011
Antwort Antwort
gitz

Registriert seit: 1. Feb 2011
1 Beiträge
 
#1

AW: Externe Exe starten und dieser einen best. Kern zuweisen

  Alt 1. Feb 2011, 21:22
Der Code hat einen kleinen fehler:

hier:
if iKernelNumb > lpSystemInfo.dwNumberOfProcessors

richtig:
if iKernelNumb > power(2,lpSystemInfo.dwNumberOfProcessors-1)

an anderer Stelle nochmals dasselbe.
ansonsten sehr nützlicher Code!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Externe Exe starten und dieser einen best. Kern zuweisen

  Alt 1. Feb 2011, 21:29
if iKernelNumb > power(2,lpSystemInfo.dwNumberOfProcessors-1)
kann man auch einfacher schreiben:
if iKernelNumb > 1 shl (lpSystemInfo.dwNumberOfProcessors-1)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#3

AW: Externe Exe starten und dieser einen best. Kern zuweisen

  Alt 1. Feb 2011, 21:33
kann man auch einfacher schreiben:
if iKernelNumb > 1 shl (lpSystemInfo.dwNumberOfProcessors-1)
Einfacher ja, schneller vermutlich auch ... aber dann darf ein Kommentar nicht fehlen für all jene die sich nicht damit auskennen. Plus der Hinweis, daß es ab einer gewissen Anzahl Kerne nur noch 0 ergibt
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.343 Beiträge
 
Delphi 12 Athens
 
#4

AW: Externe Exe starten und dieser einen best. Kern zuweisen

  Alt 1. Feb 2011, 21:37
Dieses IF ist schon richtig so.
> Wenn der Kernel-Index größer als die Anzahl ist, dann auf den letzten Kern setzen.

Aber die nachfolgende Umrechnung von "Index" auf "Maske" fehlte.

Delphi-Quellcode:
if iKernelNumb > lpSystemInfo.dwNumberOfProcessors then
  iKernelNumb := lpSystemInfo.dwNumberOfProcessors;
if SetProcessAffinityMask(hProc, $1 shl (iKernelNumb - 1)) then
Wobei ich es etwas unpraktisch finde, daß man hier einen 1-basierenden Index verwendet.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:29 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