使用标志(基于这篇文章)
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
和
IMAGE_FILE_NET_RUN_FROM_SWAP
当可执行文件位于LAN路径或可移动设备中时,可以将可执行文件加载到内存中.
即使exe在本地光盘上,有没有办法实现相同的目的?
我知道几乎没有性能提升,但要"摆脱光盘"这是一个想法.我没有在文档中找到这样的编译器选项.
即使exe在本地光盘上,有没有办法实现相同的目的?
不,那里没有.没有这样的PE旗帜.人们想象的那将是毫无意义的.为什么要从磁盘上的一个位置复制到另一个位置,然后加载映像的副本?
你用IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
和谈论性能改进IMAGE_FILE_NET_RUN_FROM_SWAP
,但是你得到了错误的方法.使用这些标志时性能会更差.那是因为在映射可执行文件之前必须首先读取整个图像.如果没有这些PE标志,则可以映射图像并仅按需加载.此外,您占用交换文件中可能具有负面影响的空间.
您不使用这些标志来提高性能,因为它们不会提高性能,它们会使您的程序启动速度变慢.您使用这些标志来确保可靠性.将映像复制到本地交换文件后,在尝试按需加载部分可执行文件时,您不太可能遇到硬页面错误.