像这样使用 EmptyWorkingSet 安全吗?

问题描述

我一直在开发一款应用,该应用可以发送按键来模仿用户操作。为此,我想记录我的击键。我在互联网上环顾四周,了解如何完成这样的任务,我找到了一个名为 Key Catcher 的程序。因为我担心在我的设备上得到一个恶意的键盘记录器,所以我首先阅读了源代码,我发现了这一行:

   return,dllcall("psapi.dll\EmptyWorkingSet","UInt",-1)

我不知道这个命令是什么,谷歌搜索给了互联网论坛警告不要自己使用 EmptWorkingSet,还有使用这个没有问题的特定程序的例子。谁能解释一下应该如何使用?或者这是否会带来问题?或者有人可以提供更好的选择吗?

PS:如果有帮助,每次进程完成时都会使用此命令

解决方法

“EmptyWorkingSet”操作从内存中删除尽可能多的应用程序页面。认为拥有大量可用 RAM 的人经常错误地使用它。

它通常不会造成太大伤害。如果需要,可以相当快地将页面加载回 RAM。但它唯一的好处就是增加了空闲内存页的数量,这实际上是有点害处的。

基本上不在这里也不在那里。从一个对性能至关重要的进程中调用它是非常糟糕的,因为它会减慢进程的速度。从一个在 RAM 中积累了大量不需要存在的 cruft 的进程调用它可能很有用。但是操作系统已经将这些东西从 RAM 本身中删除了。