Fungsi SetProcessWorkingSetSize (memoryapi.h)

Mengatur ukuran set kerja minimum dan maksimum untuk proses yang ditentukan.

Sintaks

BOOL SetProcessWorkingSetSize(
  [in] HANDLE hProcess,
  [in] SIZE_T dwMinimumWorkingSetSize,
  [in] SIZE_T dwMaximumWorkingSetSize
);

Parameter

[in] hProcess

Handel untuk proses yang ukuran set kerjanya akan diatur.

Handel harus memiliki akses PROCESS_SET_QUOTA yang tepat. Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses.

[in] dwMinimumWorkingSetSize

Ukuran set kerja minimum untuk proses, dalam byte. Manajer memori virtual mencoba untuk menyimpan setidaknya memori sebanyak ini dalam proses setiap kali proses aktif.

Parameter ini harus lebih besar dari nol tetapi kurang dari atau sama dengan ukuran set kerja maksimum. Ukuran defaultnya adalah 50 halaman (misalnya, ini adalah 204.800 byte pada sistem dengan ukuran halaman 4K). Jika nilainya lebih besar dari nol tetapi kurang dari 20 halaman, nilai minimum diatur ke 20 halaman.

Jika dwMinimumWorkingSetSize dan dwMaximumWorkingSetSize memiliki nilai (SIZE_T)–1, fungsi akan menghapus halaman sebanyak mungkin dari kumpulan kerja proses yang ditentukan.

[in] dwMaximumWorkingSetSize

Ukuran set kerja maksimum untuk proses, dalam byte. Manajer memori virtual mencoba untuk menjaga tidak lebih dari memori sebanyak ini dalam proses setiap kali proses aktif dan memori yang tersedia rendah.

Parameter ini harus lebih besar dari atau sama dengan 13 halaman (misalnya, 53.248 pada sistem dengan ukuran halaman 4K), dan kurang dari maksimum seluruh sistem (jumlah halaman yang tersedia dikurangi 512 halaman). Ukuran defaultnya adalah 345 halaman (misalnya, ini adalah 1.413.120 byte pada sistem dengan ukuran halaman 4K).

Jika dwMinimumWorkingSetSize dan dwMaximumWorkingSetSize memiliki nilai (SIZE_T)–1, fungsi akan menghapus halaman sebanyak mungkin dari kumpulan kerja proses yang ditentukan.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Panggil GetLastError untuk mendapatkan informasi kesalahan yang diperluas.

Keterangan

Set proses yang berfungsi adalah set halaman memori di ruang alamat virtual proses yang saat ini tinggal dalam memori fisik. Halaman ini tersedia untuk digunakan aplikasi tanpa memicu kesalahan halaman. Untuk informasi selengkapnya tentang kesalahan halaman, lihat Set Kerja. Ukuran set kerja minimum dan maksimum mempengaruhi perilaku halaman memori virtual dari sebuah proses.

Set kerja dari proses yang ditentukan dapat dikosongkan dengan menentukan nilai (SIZE_T)–1 untuk ukuran set kerja minimum dan maksimum. Ini menghapus halaman sebanyak mungkin dari set kerja. Fungsi EmptyWorkingSet juga dapat digunakan untuk tujuan ini.

Jika nilai dwMinimumWorkingSetSize atau dwMaximumWorkingSetSize lebih besar dari ukuran set kerja proses saat ini, proses yang ditentukan harus memiliki hak istimewa SE_INC_WORKING_SET_NAME . Semua pengguna umumnya memiliki hak istimewa ini. Untuk informasi selengkapnya tentang hak istimewa keamanan, lihat Hak Istimewa.

Windows Server 2003 dan Windows XP: Proses yang ditentukan harus memiliki hak istimewa SE_INC_BASE_PRIORITY_NAME . Pengguna di grup Administrator dan Pengguna Daya umumnya memiliki hak istimewa ini.

Sistem operasi mengalokasikan ukuran set kerja berdasarkan first-come, first-served. Misalnya, jika aplikasi berhasil menetapkan 40 megabyte sebagai ukuran set kerja minimumnya pada sistem 64 megabyte, dan aplikasi kedua meminta ukuran set kerja 40 megabyte, sistem operasi menolak permintaan aplikasi kedua.

Menggunakan fungsi SetProcessWorkingSetSize untuk mengatur ukuran set kerja minimum dan maksimum aplikasi tidak menjamin bahwa memori yang diminta akan dicadangkan, atau bahwa ia akan tetap tinggal setiap saat. Ketika aplikasi diam, atau situasi memori rendah menyebabkan permintaan memori, sistem operasi dapat mengurangi set kerja aplikasi. Aplikasi dapat menggunakan fungsi VirtualLockuntuk mengunci rentang ruang alamat virtual aplikasi dalam memori; namun, itu berpotensi menurunkan performa sistem.

Ketika Anda meningkatkan ukuran set kerja aplikasi, Anda mengambil memori fisik dari sistem lainnya. Ini dapat menurunkan performa aplikasi lain dan sistem secara keseluruhan. Ini juga dapat menyebabkan kegagalan operasi yang mengharuskan memori fisik ada (misalnya, membuat proses, utas, dan kumpulan kernel). Dengan demikian, Anda harus menggunakan fungsi SetProcessWorkingSetSize dengan hati-hati. Anda harus selalu mempertimbangkan performa seluruh sistem saat merancang aplikasi.

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header memoryapi.h
Pustaka onecore.lib
DLL Kernel32.dll

Lihat juga

GetProcessWorkingSetSize

Proses Set Kerja

Fungsi Proses dan Utas

Proses

SetProcessWorkingSetSizeEx

VirtualLock