Pengoptimal Memori dan CPU: Apakah mereka tipuan?

2

Adalah alat yang menganalisis yang memungkinkan Anda untuk menggunakan semua core CPU Anda dan juga alat yang membantu Anda mendapatkan kembali ingatan (tidak bisa memikirkan apa pun kecuali melihat banyak) gimmick? Apakah alat ini benar-benar berfungsi?

dotnetdev
sumber
Yang "mendapatkan kembali memori" yang sejalan dengan HijackThis !, wajar, membantu Anda menonaktifkan Windows dan layanan pihak ke-3 dan proses latar belakang / start-up yang mungkin tidak Anda perlukan. Di luar itu, meh.
mctylr

Jawaban:

5

Pengoptimal Memori

Ada waktu ketika pengguna DOS 386/486 harus secara manual mengoptimalkan file config.sys dan autoexec.bat mereka dengan hati-hati untuk memuat sebanyak mungkin barang "tinggi" (di atas 640K). Memuat hal yang salah terlebih dahulu bisa menabrak segala sesuatu yang lain ke dalam ruang aplikasi 640K berharga Anda.

Kemudian datang pengoptimal memori yang menemukan hal ini untuk Anda secara otomatis. Mereka mencapai manfaat dan kematangan yang benar saat Windows 95 membuat semuanya usang.

Pengoptimal Sistem

Hal lain yang dilakukan pengoptimal kecepatan termasuk mengosongkan tempat sampah Anda, mendefrag hard disk Anda, membersihkan registri Anda, menghapus log instalasi lama, menghapus penginstalan driver yang tidak diperlukan dan menghapus penginstalan fragmen dari program lama.

Jika mereka membersihkan sesuatu tepat di ambang pintu, peningkatan kecepatan mungkin dramatis. Biasanya tidak.

Seperti yang bisa Anda tebak, Anda dapat melakukan semua hal ini sendiri tanpa mengeluarkan uang.

kmarsh
sumber
Jangan lupa MS-DOS (6.0+ saya pikir) memmaker alat dari Microsoft yang datang dengan versi MS-DOS. easydos.com/memmaker.html
mctylr
3

Dilihat dari nama pengguna Anda, saya katakan Anda seorang pengembang perangkat lunak seperti saya.

Jika aplikasi tidak ditulis untuk memanfaatkan multi-threading, aplikasi pembantu tidak akan melakukan apa pun untuk Anda.

Jika Anda menjalankan aplikasi multi-utas, dan itu ditulis dengan benar, algoritma penjadwalan utas di Windows akan baik-baik saja. Program seperti ini ada untuk mengambil keuntungan dari orang-orang yang tidak tahu apa yang terjadi di bawah tenda.

Hampir semua komputer modern memilikinya   Setidaknya dua prosesor, yaitu   umumnya disebut sebagai "core".

Harus menjadi hadiah mati karena kita semua tahu bahwa inti dan prosesor adalah dua hal yang berbeda.

Justin Niessner
sumber
Yap, saya seorang pengembang. Saya tidak bisa melihat bagaimana aplikasi pihak ke-3 dapat mengubah perilaku aplikasi - satu-satunya cara untuk memanfaatkan core dll - karena kode aplikasi perlu diubah. Sepertinya perusahaan sedang berusaha menargetkan non-techies.
dotnetdev
Itu pasti. Sungguh menakjubkan apa yang dapat Anda lakukan jika Anda bersedia berbohong kepada orang-orang yang menjual perangkat lunak Anda.
Justin Niessner
3

Mungkin ada sebutir kebenaran dalam klaim program tertentu, tetapi menurut pemahaman saya tentu saja tidak akan melakukan apa pun dari apa yang mereka klaim sebagai dampak potensial kecuali kecuali di bawah tolok ukur yang tidak realistis dijalankan dalam kondisi pengujian yang sangat artifisial (klaim yang dibuat mungkin sepenuhnya benar, tetapi hanya dalam kondisi yang kemungkinan besar tidak pernah Anda alami).

Kedengarannya seperti utilitas mengutak-atik prosesor / inti. Secara default, proses mungkin sedikit melambung di antara inti di sebagian besar sistem operasi - misalnya Anda kadang-kadang akan melihat program yang tampaknya menggunakan ~ 25% dari empat core atau ~ 50% dari dua daripada ~ 100% dari satu.

Dengan sebagian besar, jika tidak semua, multi-core dan / atau multi-prosesor mendesain satu utas dalam suatu proses (yang bisa menjadi satu-satunya utas dalam proses satu-utas) yang terikat CPU dan bekerja pada blok data yang lebih kecil daripada Cache L1 / L2 CPU untuk sebagian besar operasinya akan beroperasi lebih efisien jika dikaitkan dengan satu inti tertentu daripada dibiarkan terpental di antara mereka. Hal ini karena bergerak di antara inti akan lebih mungkin berarti cache L1 inti baru perlu "prima" (dari cache L2 / L3 atau RAM utama) sebelum loop ketat yang cache prima core lain mungkin sudah siap untuk dapat menjalankan efisiensi puncak . Ini lebih buruk jika L2 atau L3 cache tidak memiliki kode / data yang berguna di dalamnya, yang mungkin menjadi masalah jika utas telah melompat ke CPU fisik yang berbeda. Perbedaannya akan menjadi minimal di terbaik sekalipun. Untuk membuat perbedaan, proses / utas perlu berulang melalui serangkaian data yang terbatas berkali-kali dan bahkan jika itu berganti inti sekali atau dua kali per detik penataan ulang cache L1 yang berkali-kali tidak mungkin menghasilkan jumlah yang signifikan kecuali Anda mengatur waktu operasi yang akan memakan waktu berhari-hari.

"Mengapa OS tidak mengatur afinitas proses / utas lebih agresif jika itu bisa membuat perbedaan? "adalah pertanyaan yang harus melompat ke pikiran Anda pada saat ini. Pada dasarnya, dalam kasus umum itu membuat sedikit perbedaan dan dalam kasus di mana ada beberapa proses ikatan CPU atau benang yang dapat di antara mereka menggunakan semua kekuatan CPU Anda mendapatkan pertalian yang salah dapat memperlambat segalanya dengan lebih dari melakukannya dengan benar akan membantu, dan Anda memiliki semua perhitungan tambahan yang terlibat dalam "menebak" apa yang benar untuk keadaan saat ini yang dapat membunuh atau membalikkan manfaat umum apa pun. , aturan keras dan cepat sedikit dan jauh antara apa yang mungkin terbaik untuk menyulap proses-proses tertentu pada satu arsitektur tertentu mungkin jauh kurang optimal pada yang lain. Jadi OS Anda akan dioptimalkan untuk kasus umum dengan melakukan sedikit optimasi tetapi tidak mencoba terlalu keras. Jika Anda melakukan sesuatu yang sangat spesifik (katakanlah, proses pengolahan angka atau data yang sangat spesifik yang hampir merupakan satu-satunya hal yang berjalan pada mesin) OS Anda akan memungkinkan Anda secara memadai pengguna istimewa untuk men-tweak afinitas proses dan akan memungkinkan programmer untuk memberikan petunjuk OS tentang apa yang mungkin lebih efisien juga - tetapi mengutak-atik secara salah dapat menghalangi scheduler daripada membantu.

Singkat cerita: distributor perangkat lunak itu mungkin menggunakan teknik yang secara teori akan membantu cara mereka mengatakannya, tetapi menurut pemahaman saya, Anda tidak akan melihat perbedaannya jika itu benar dan kemungkinan besar akan membuat segalanya lebih lambat. Anda mungkin akan membuang waktu berkali-kali menit menginstal ini dan bermain dengan pengaturannya daripada itu akan menghemat CPU Anda dalam beberapa dekade konstan 24/7 operasi intensif komputasi!

Bahkan lebih pendek: Hampir, tetapi tidak sepenuhnya, sepenuhnya minyak ular.

Peringatan: Menurut pendapat saya, anggap pengetahuan saya tentang area itu benar!

David Spillett
sumber
1

Saya seorang pengembang, jadi saya akan menjawab pertanyaan ini dari perspektif C / C ++. Dengan asumsi saya sedang menulis program GUI dan tidak ada di mana pun keluar menggunakan thread pekerja CreateThread() maka itu adalah single core dan tidak ada yang dapat Anda lakukan akan membantu. Jika saya menggunakan CreateThread() dan CreateProcess() maka saya sebagai programmer dapat mencoba mengatur afinitas. Saya juga dapat mengatur prioritas penjadwalan, meskipun ini adalah perkiraan berdasarkan jenis deskripsi ini: Rendah, Normal, Tinggi, BelowNormal, AboveNormal. Level thread dasar sebenarnya adalah 1-16 (17-32 untuk kode level kernel) tetapi Anda tidak dapat memetakannya secara langsung, hanya dimasukkan ke dalam bin sesuai perhitungan scheduler. Saya tidak memiliki kontrol lebih dari itu atas bagaimana saya mengontrol utas saya. Internal Windows Schedular tidak dikenal di luar Microsoft, sebagian karena Microsoft mengubahnya di antara rilis Windows untuk memastikan mereka tetap di atas penggunaan sistem dan membuat semuanya berjalan semulus mungkin.

Gagasan bahwa aplikasi lain akan membantu adalah konyol, kecuali jika itu akan memecah proses saya di seluruh core. Melakukannya akan sangat sulit jika tidak pada level kernel dan mungkin akan merusak aplikasi. Mencoba memaksa penjadwal untuk melakukan sesuatu yang berbeda juga merupakan pemborosan siklus CPU, karena Anda harus membuat perhitungan untuk mempercepat dan menerapkannya pada utas dan proses Anda.

Akhirnya, Anda bisa membuat sistem Anda lebih tidak stabil menggunakan alat-alat seperti ini. Pemindai antivirus dijalankan dengan prioritas rendah karena suatu alasan, misalnya. Baca tentang nilai kebaikan suatu proses di Linux (itu konsep yang sama di Windows: pada dasarnya, proses dianggap tidak baik jika mereka memiliki sumber daya. Di linux, mereka sebenarnya mendapatkan sedikit waktu untuk perilaku buruk seperti itu. Di bawah jendela, mereka hanya memiliki sumber daya dan memperlambat semuanya). Jadi, sementara program harus dapat mengatasinya, alat Anda mungkin memberikan proses lebih prioritas daripada yang sebenarnya mereka inginkan, atau kurang ketika mereka membutuhkannya.

Seperti yang orang lain katakan, ini yang terbaik diserahkan kepada OS.


sumber