Set affinity with start /AFFINITY command on Windows 7

前端 未结 3 905
囚心锁ツ
囚心锁ツ 2020-11-30 05:53

I am using the start /AFFINITY [n] [.exe] command to start an executable with the specified affinity. I have a system with 8 processors (1,2,3,4,5,6,7,8). I\'d

相关标签:
3条回答
  • 2020-11-30 06:28

    More info for your own computation needs:

    CPU ID  CPU value (dec)
    0       001 (= 2^0)
    1       002 (= 2^1)
    2       004 (= 2^2)
    3       008 (= 2^3)
    4       016 (= 2^4)
    5       032 (= 2^5)
    6       064 (= 2^6)
    7       128 (= 2^7)
    

    Consequently:

    • Mask for CPU IDs 0, 1, 2, 3, 4, 5, 6, 7: 255 (sum of individual CPU decimal values), that is the 'FF' mask as hexadecimal
    • Mask for CPU IDs 0, 2, 4, 6 : 85 (sum of individual CPU decimal values), that is the '55' mask as hexadecimal

    Reference: search the 'These are affinity mask values for an 8-CPU system' pattern at https://msdn.microsoft.com/en-US/library/ms187104.aspx.

    0 讨论(0)
  • 2020-11-30 06:29

    AFFINITY works with a hexidecimal mask that should allow granular control of all of your processors. Note that the rightmost bit specifies the lowest-order CPU (0) (see KB 299641).

    For the case in question, 0xAA (10101010) requests that your process run using processors 1, 3, 5 and 7, but not 0, 2, 4 or 6. Be sure to leave out the '0x' on the command line.

     start /affinity AA app.exe
    

    Other examples:

     start /affinity 1 app.exe     (only use CPU 0)
     start /affinity 2 app.exe     (only use CPU 1)
     start /affinity 1F app.exe    (only use CPUs 0, 1, 2, 3, and 4)
    
    0 讨论(0)
  • 2020-11-30 06:42

    To get right HEX number imagine your cores in plane format 8765 4321 (for 8-core CPU) in backward direction (but NOT like 1234 5678)

    To get cores 7, 6 and 3 activated, type number 0x64 for affinity:

    /AFFINITY 0x64
    

    For better look, match and compare: 0110 0100 - number = 0x64 (8765 4321) - cores

    For @ladenedge example: /AFFINITY AA 1010 1010 - number = 0xAA (8765 4321) - cores

    See also: Start an Application Assigned to a Specific CPU in Windows 7, 8, or Vista

    0 讨论(0)
提交回复
热议问题