Advertisement
sk7z

VRC_RyzenAffinityMaskChange.ps1

Nov 20th, 2020 (edited)
869
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $ErrorActionPreference="Stop"
  2.  
  3. # 定数定義
  4. $MASK = 0xFFF
  5. # MASKに使用したいスレッドを2進数から16進数に変換した値を入れてください
  6. # 例 5900X 000000000000111111111111
  7. # 2進数から16進数変換 FFF
  8. # 16進数と識別するために0xを先頭につける
  9. # 0xFFF
  10.  
  11. #CPU毎の最適値(推測)
  12. #5950X 16スレッド選択
  13. #0xFFFF
  14.  
  15. #5900X 12スレッド選択
  16. #0xFFF
  17.  
  18. #3950X 3800X 3700X  8スレッド選択
  19. #0xFF
  20.  
  21. #3900X 3600X 6スレッド選択
  22. #3F
  23.  
  24. $save_process_id = -1
  25. $isAlreadyRuning = $false
  26. function timer_function(){
  27.   $process
  28.   try{
  29.     #プロセスが存在するかチェック(雑)
  30.     $process = Get-Process -Name "VRChat"
  31.   }catch{
  32.     #プロセスが存在しない場合
  33.     $script:isAlreadyRuning = $false
  34.     Write-Host "Process not found"
  35.     return
  36.   }
  37.   if($null -ne $process){
  38.  
  39.     if($script:save_process_id -ne $process.id){
  40.       #プロセスIDが変更された場合は再度スレッド割当を変更する
  41.       $script:isAlreadyRuning = $false
  42.       Write-Host "Process id change"
  43.     }
  44.  
  45.     if($isAlreadyRuning -eq $false){
  46.       #VRChatが起動したらスレッド割当を変更する
  47.       Write-Host "Process start"
  48.       $script:isAlreadyRuning = $true
  49.       $script:save_process_id = $process.id
  50.       try{
  51.         $process.ProcessorAffinity = $MASK
  52.         Write-Host "Succes AffinityChange"
  53.       }catch{
  54.         #MASKに設定した値が不正の場合
  55.         Write-Host "Error AffinityChange"
  56.       }
  57.     }else{
  58.       #既に変更済みの場合は何もしない
  59.       Write-Host "Process already start"
  60.     }
  61.   }
  62. }
  63.  
  64. #定期実行(いくらなんでも雑杉 後で直す(多分直さない))
  65. while($True) {
  66.   timer_function
  67.   Start-Sleep 10
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement