c - 像这样使用 EmptyWorkingSet 是否安全?
问题描述
我一直在开发一个发送击键来模仿用户操作的应用程序。为此,我想记录我的击键。我在互联网上四处寻找如何完成这样的任务,我发现了一个名为 Key Catcher 的程序。因为我担心我的设备上会出现恶意键盘记录器,所以我首先阅读了源代码,我发现了这一行:
return, dllcall("psapi.dll\EmptyWorkingSet", "UInt", -1)
我不知道这个命令是什么,谷歌搜索给了互联网论坛警告不要自己使用 EmptWorkingSet,但也有使用这个没有问题的特定程序的例子。谁能解释这应该如何使用?或者如果这会带来问题?或者有人可以提供更好的选择吗?
PS:如果有帮助,则每次进程完成时都会使用此命令
解决方案
“EmptyWorkingSet”操作从内存中删除尽可能多的应用程序页面。那些认为拥有大量可用 RAM 就很好的人经常错误地使用它。
一般不会造成太大伤害。如果需要,这些页面可以相当快地加载回 RAM。但它唯一的好处是使空闲内存页的数量增加,这实际上是有点有害的。
它基本上既不在这里也不在那里。从对性能至关重要的进程调用它是非常糟糕的,因为它会减慢进程。从一个在 RAM 中积累了大量不需要存在的垃圾的进程中调用它可能很有用。但是操作系统已经从 RAM 本身中删除了这些东西。
推荐阅读
- teamcity - teamcity 是否支持轮询 ECR repo 以获取新映像版本?
- ios - JSON 写入中的类型无效 (__SwiftValue)
- kubernetes - 如何在 kuberenets 集群上使用 Ingress 和 Haproxy?
- swift - 跨 iCloud 设备同步通知
- javascript - 当我通过 chrome 扩展的内容脚本修改网页中的单词时,超出了最大调用堆栈大小
- maven - 如何从 jenkins 工作中为多个项目找到 pom.xml 中的特定依赖项?
- datagridview - 如何防止在填写 DataGridView 列之前调用 DateTime 参数?
- sed - sed:如何打印每行中的所有匹配项?
- amazon-web-services - 系统时间不同步时 AWS Cognito 失败
- reactjs - 使用第一个值预填充语义下拉列表:React+ Typescript