improve user experience for some users

This commit is contained in:
clowwindy
2015-08-18 04:26:11 -07:00
parent 3b90b2124f
commit 71bd0d2b5a
5 changed files with 29 additions and 8 deletions
+24 -3
View File
@@ -10,7 +10,7 @@ namespace Shadowsocks.Util
{
public class Utils
{
public static void ReleaseMemory()
public static void ReleaseMemory(bool removePages)
{
// release any unused pages
// making the numbers look good in task manager
@@ -20,8 +20,29 @@ namespace Shadowsocks.Util
// which is part of user experience
GC.Collect(GC.MaxGeneration);
GC.WaitForPendingFinalizers();
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,
(UIntPtr)0xFFFFFFFF, (UIntPtr)0xFFFFFFFF);
if (removePages)
{
// as some users have pointed out
// removing pages from working set will cause some IO
// which lowered user experience for another group of users
//
// so we do 2 more things here to satisfy them:
// 1. only remove pages once when configuration is changed
// 2. add more comments here to tell users that calling
// this function will not be more frequent than
// IM apps writing chat logs, or web browsers writing cache files
// if they're so concerned about their disk, they should
// uninstall all IM apps and web browsers
//
// please open an issue if you're worried about anything else in your computer
// no matter it's GPU performance, monitor contrast, audio fidelity
// or anything else in the task manager
// we'll do as much as we can to help you
//
// just kidding
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle,
(UIntPtr)0xFFFFFFFF, (UIntPtr)0xFFFFFFFF);
}
}
public static string UnGzip(byte[] buf)