Tôi đang sử dụng mã bên dưới để giải phóng bộ nhớ trên một số chương trình đang chạy vì chương trình của riêng tôi cần tài nguyên bộ nhớ lớn để chạy nhanh hơn.Các tác dụng phụ của việc sử dụng EmptyWorkingSet là gì?
[DllImport("psapi.dll")]
public static extern bool EmptyWorkingSet(IntPtr hProcess);
public FreeMem(string programName){
EmptyWorkingSet(Process.GetCurrentProcess().Handle);
foreach(Process process in Process.GetProcesses(programName))
{
try
{
EmptyWorkingSet(process.Handle);
}
catch (Exception)
{
...
}
}
}
Dường như hoạt động tốt, tôi có thể giảm mức sử dụng bộ nhớ của một số chương trình như nhà thám hiểm từ 100.000 Kb xuống còn 2.000 Kb. Đó là khá tốt nhưng có một tác dụng phụ về việc này? Một số phần mềm thương mại cũng đang sử dụng trình quản lý này như Yamicsoft Vista/Xp và Trình tối ưu hóa Firefox để đặt tên cho một số ít vì vậy tôi đang nghĩ nếu điều này không có tác dụng phụ xấu hoặc có ở đó không?
có lẽ bạn nói đúng. Tôi sẽ cố gắng tìm một cách để tối ưu hóa chương trình của riêng tôi thay vì tối ưu hóa các chương trình khác và xóa EmptyWorkingSet nếu nó nguy hiểm. – murasaki5