是否可以暗示Windows虚拟内存管理器使特定进程退出交换?
我经常发现自己遇到的情况通常是将所有正常程序的RAM占用大约50%,尤其是嵌入式目标的IDE及其相关的调试器。
然后,我让内存消耗旺盛的进程继续运行-例如,wireshark或某个周末正在累积数据的事物,一切都被交换掉了-应当这样做。大流程完成后,大多数流程都处于交换状态。
然后,偶尔会暂停以将进程交换回去,从而导致调试器出现问题,这大概是由于IDE和硬件调试器之间的通信中出现了时序问题。因此,在足够的尝试使IDE中的调试数据退出交换之前,可以零星地控制目标设备。
这将是非常有用的!从用户的角度来看,在每次单击或用户操作之后等待交换过程很烦人。最好说:“取消此过程!” ,去喝咖啡,然后返回到响应系统!
—
Tomas
我不熟悉Windows的交换过程中的细节,但是这个东西你要找的?注释中应该有一个可用的二进制示例。
—
瑞克(Rik)2013年
我曾经有一个类似的问题,并根据我在Stack Overflow上得到的答案编写了一个程序。
—
Kerrek SB 2013年
@Kerrek,我尝试在MinGW下编译您的代码,每次读取均出现错误“无法从0x161000读取一个字节,错误299(读取0字节)。” 由于我只有Windows在工作,所以我不足以运行您附加的随机二进制文件,因此问题可能出在我的编译中。
—
格雷格,
@KerrekSB,似乎是个小问题。也许您正在触摸未映射的存储区?无论如何,我认为您的答案值得赏识:) PS:与HDD速度相比,交换掉似乎慢得多。瓶颈似乎在其他地方,但是在哪里?
—
Tomas