Bagaimana cara paling efisien memanfaatkan sumber daya CPU di windows 7? [Tutup]

0

Perangkat keras: Lenovo T420s dengan prosesor i7 dan RAM 8GB, 64bit

Bagaimana saya bisa mengkonfigurasi komputer saya untuk memaksimalkan / mengoptimalkan alokasi sumber daya untuk program tertentu?

Saya ingin membuat Dragon Naturally Speaking beroperasi secepat mungkin, tetapi juga dapat melakukan hal yang sama untuk, misalnya R, ArcGIS, atau MySQL.

Abe
sumber
Mengapa Anda berpikir itu tidak akan melakukan ini? Jika ada tombol "lebih cepat", itu akan datang pada posisi on.
David Schwartz
@ David mengapa saya membuat asumsi ini? Ada banyak alasan bahwa suatu proses mungkin tidak berjalan maksimal, dan ketika saya melihat monitor sistem, proses berjalan dengan CPU = 25%
Abe
@ Abe: Itu mungkin karena Anda memiliki sistem quad-core (atau dual-core dengan HT) dan program ini hanya memuat satu utas.
David Schwartz
@ Sinetech: Mengapa Anda curiga? Bahkan program yang tidak Anda pedulikan akan tetap berjalan sampai selesai (dengan asumsi mereka memiliki jumlah pekerjaan yang tetap untuk dilakukan), jadi mereka masih membutuhkan setidaknya jumlah CPU yang sama tidak peduli bagaimana Anda mengubah keadaan. Tetapi memaksa sistem untuk bermain favorit membuatnya kurang efisien.
David Schwartz
Ada tombol lebih cepat. Di Task Manager, crank prioritas proses (klik kanan proses> prioritas).
SecurityMatt

Jawaban:

2
  • Anda dapat melakukannya secara manual:
    1. Buka Task Manager ( Ctrl+Shift+Escape)
    2. Klik kanan program pada tab Aplikasi dan pilih Go To Process
    3. Klik kanan proses dalam Proses , pilih Tetapkan Prioritas , dan pilih "Di Atas Normal" atau "Tinggi" (jangan pilih "Waktu Nyata" kecuali Anda benar - benar tahu apa yang Anda lakukan!)
    4. Klik kanan proses lagi dan pilih Set Affinity dan pastikan semua kotak centang CPU dicentang (ini adalah default)

  • Jika Anda ingin melakukannya secara otomatis, Anda dapat membuat skrip:
    1. Buat file teks yang disebut misalnya mysql.bat:
      start /high "MySQL" "c:\mysql\mysqld.exe --options --blah"
    2. Kemudian buat pintasan untuk itu, pastikan untuk mengatur bidang Run di tab Shortcut ke "Diminimalkan".
Synetech
sumber
1
Perhatikan bahwa ini dapat memiliki kebalikan dari efek yang diharapkan. Ini akan memberi tugas-tugas lain rentang waktu yang lebih kecil sehingga menjalankannya kurang efisien dan membutuhkan lebih banyak waktu CPU daripada yang seharusnya. Ini juga buruk pada CPU multi-core karena efisiensi cache yang lebih rendah dari tugas-tugas lain (karena irisan yang lebih kecil) berarti akses memori lebih lambat untuk tugas-tugas yang Anda pedulikan. Anda lebih baik membiarkan penjadwal menjalankan semua tugas secara efisien daripada meningkatkan beberapa dengan mengorbankan yang lain. Jika tugas lain membutuhkan CPU sebentar, lebih baik menyelesaikan tugasnya dengan cepat dan efisien.
David Schwartz
@ David, jika Anda membaca seluruh pertanyaan (bukan hanya judulnya), Anda akan melihat bahwa ia bertanya tentang memprioritaskan beberapa program tertentu .
Synetech
Ya aku mengerti itu. Masalahnya adalah, ini akan membuat program lain berjalan kurang efisien, sehingga membutuhkan lebih banyak CPU daripada yang seharusnya. Ini sebenarnya akan membuat program yang disukai berjalan lebih buruk karena dua alasan: Program lain perlu menjalankan lebih banyak waktu dan mungkin akan benar-benar menjalankan lebih banyak waktu. Akses memori akan lebih lambat karena program lain perlu mengisi ulang cache lebih sering. Kedua faktor ini menyebabkan program dengan prioritas berjalan lebih lambat .
David Schwartz
Tetapi bukan itu yang dia tanyakan, dia bertanya bagaimana memprioritaskan suatu program. Ini bukan tempat untuk memberi tahu mereka tentang multitasking preemptive. Jika Anda benar dalam pernyataan Anda, maka kemampuan untuk mengubah prioritas untuk proses tidak akan ada, dan ternyata tidak ada . Menurut Anda mengapa banyak program memiliki fungsi bawaan untuk menetapkan prioritas? Beberapa program memungkinkan Anda memilih untuk menjalankannya dalam prioritas tinggi sehingga program latar belakang tidak memperlambatnya, sementara yang lain membiarkan Anda memilih untuk menjalankannya dalam prioritas rendah untuk menghindari macetnya program lain.
Synetech
1
Dia bertanya bagaimana memaksimalkan alokasi CPU untuk program tertentu. Mengangkat prioritas adalah bagaimana hal itu dilakukan. Saya tidak melihat kebingungan Anda. Saya telah menjawab pertanyaan yang disajikan. Jika Anda berpikir masalahnya adalah sesuatu yang lain, maka tandai pertanyaan yang akan ditutup dan beri tahu Abe membuka yang baru dengan menanyakan "mengapa CPU tidak berjalan pada 100%".
Synetech
2

Ini kemungkinan tidak mungkin dilakukan dan upaya untuk melakukannya akan menjadi kontra-produktif. Mencoba memaksa sistem untuk memainkan favorit membuatnya kurang efisien. Program lain masih membutuhkan setidaknya jumlah CPU yang sama seperti yang mereka butuhkan sekarang, sehingga jumlah yang sama akan tersisa untuk program yang dipilih. Anda mungkin sedikit meningkatkan latensi untuk program yang disukai, tetapi dengan biaya lebih banyak isi ulang cache dari program lain memperlambatnya saat sedang berjalan.

Pada dasarnya, orang-orang yang mendesain OS Anda dan penjadwalnya tahu apa yang mereka lakukan. Kecuali Anda tahu sesuatu yang signifikan yang tidak mereka gunakan khusus untuk Anda, Anda lebih mungkin membuat segalanya lebih buruk daripada lebih baik.

Ketika Anda melihat suatu program hanya menggunakan 50% atau 25% dari CPU atau angka genap seperti itu, itu hampir selalu karena itu memuat inti sebanyak yang mampu digunakan. Mendapatkan program untuk menggunakan lebih banyak core biasanya memerlukan desain ulang.

Beberapa program tertentu mungkin bisa digunakan untuk multi-core. Jika programnya adalah salah satunya, dan sakelar itu mati, menyalakannya pasti bisa membantu. Tetapi sebagian besar program seperti itu secara otomatis mendeteksi mesin multi-core. Jadi biasanya tidak ada ruang untuk perbaikan.

Anda juga dapat menyebabkan malapetaka kinerja dengan cara ini. Tanya saja tim penjelajah Mars . Misalnya, bayangkan jika proses yang Anda tingkatkan memiliki dua utas dan sistem memiliki satu inti. Utas pertama diblokir pada sumber daya sistem yang saat ini dimiliki oleh proses lain. Utas kedua dapat membuat banyak kemajuan ke depan. Utas pertama dapat terhenti untuk waktu yang sangat lama karena utas kedua dapat membuat proses lainnya kelaparan sehingga tidak dapat melepaskan sumber daya sistem.

Ini dapat terjadi bahkan jika pengembang program secara khusus menurunkan prioritas utas kedua untuk mencoba memberikan preferensi CPU pada utas pertama karena sedang melakukan pekerjaan penting. Prioritas proses statis mengontrol Windows memberi Anda terlalu kasar. Ini akan , misalnya, terjadi pada banyak akses file jika Anda memiliki pemindai anti-virus aktif.

David Schwartz
sumber
tetapi para desainer ini cukup tahu untuk menyediakan kemampuan untuk menetapkan prioritas secara manual, dan rekan saya dan saya sering melakukan ini di server bersama kami menggunakan torsi. Ada kalanya saya hanya ingin komputer saya melakukan engkol melalui sesuatu saat saya menggunakan komputer lain
Abe
@Abe: Mereka menyediakan kemampuan baik untuk alasan sebelumnya, untuk mendukung kasus di mana latensi lebih penting daripada throughput, dan untuk kasus di mana beban yang ditempatkan oleh tugas lain tidak diperbaiki. Jika Anda ingin komputer Anda melakukan engkol melalui sesuatu, biarkan saja engkol. (Faktanya, Microsoft secara khusus memperingatkan terhadap perubahan prioritas proses, di antara alasan-alasan lain, karena risiko serius dari pembalikan prioritas yang disebabkan oleh pertengkaran untuk sumber daya sistem.)
David Schwartz
Tolong jelaskan kepada kami bagaimana kaitan Mars Rover dengan kernel Windows, karena ia menggunakan penjadwal yang sama sekali berbeda dan dengan demikian paragraf tersebut tidak selalu berlaku untuk kernel Windows. Saya tidak melihat Microsoft memperingatkan kami karena alasan itu, dan tautan Wikipedia mencantumkan solusi yang mungkin (atau mungkin tidak) telah diterapkan di kernel Windows.
Tamara Wijsman
@ TomWijsman: Intinya adalah bahwa mengubah prioritas tugas dapat berdampak negatif serius dan memiliki semua tugas Anda pada prioritas dasar yang sama menghilangkan banyak mode kegagalan yang mungkin. Mengubah dari dua hal yang berada pada prioritas yang sama menjadi prioritas yang berbeda adalah berbahaya ketika keduanya mengakses sumber daya bersama (dalam hal ini, sistem Windows GUI) dengan cara yang kompleks.
David Schwartz
@ Davidvidchwartz: Sistem Windows GUI berjalan pada prioritas tinggi, hanya prioritas waktu nyata di atas itu. Program-program yang disebutkan oleh OP tidak benar-benar bergantung pada sumber daya bersama lainnya ...
Tamara Wijsman