1
1
简单的答案(少一点我错了),不。一般来说,这不是一个好主意,原因有两个。首先是因为它会在您的程序和其他程序之间引起信任问题(更不用说我们人类也不会信任您的应用程序)。其次,如果您能够访问另一个应用程序内存并在应用程序不知道的情况下进行更改,则会导致应用程序崩溃(病毒也会这样做)。 从运行时调用垃圾收集器。运行时“拥有”内存空间,并允许其他应用程序在该内存空间中“活动”。这就是垃圾收集器可以存在的原因。您必须创建一个运行时,操作系统将内存分配给它,让运行时在它的权限下执行应用程序,并在它的权限下使用GC。您需要允许一些工具或API允许应用程序开发人员从您的运行时(而不是操作系统)中“请求”内存,并且您的运行时不仅可以响应这样的请求,还可以跟踪它分配给该应用程序的内存空间。您可能需要一个框架(一组DLL),使这些调用对应用程序可用(开发人员将使用它们在应用程序内部形成请求)。 您必须确保垃圾收集器不会删除除被执行的应用程序使用的内存以外的内存,因为您可能同时在运行时内运行多个应用程序。 希望这有帮助。 |
2
4
不。 任何现代操作系统都会阻止一个进程访问属于另一个进程的内存。 事实上,如果你理解虚拟内存,你就会明白这是不可能的。每个进程都有自己的虚拟地址空间。 |
3
1
事实上,正确的答案是肯定的。有一些程序可以做到这一点(如果它们存在的话..这意味着有可能……) 也许您需要编写一个内核驱动器来完成这个任务,但这是可能的。 哦-我还有另一个例子…调试器附加命令…这里有一个程序与另一个程序内存交互,即使这两个程序都是以不同的进程启动的…… 当然-弄乱了另一个程序内存。如果你不知道你在做什么,可能会让它崩溃… |
codeforester · 测量GC暂停时间的最佳方法是什么? 6 年前 |
Venki WAR · 需要解释G1的并行完整GC 6 年前 |
Stephan_Berlin · 为什么CMS系列中的初始标记阶段 6 年前 |
Bonsaisteak · 为什么年轻一代需要三个区域来收集垃圾? 6 年前 |
goks · 如何清除熊猫的数据帧内存? 6 年前 |