【发布时间】:2011-02-14 00:32:44
【问题描述】:
在原生 C++ 项目中,现在链接可能需要一两分钟。然而,在此期间 CPU 从编译期间的 100% 下降到几乎为零。这是否意味着链接主要是磁盘活动?
如果是这样,这是 SSD 会做出重大改变的主要领域吗?但是,为什么编译后我的所有 OBJ 文件(或尽可能多的文件)没有保存在 RAM 中以避免这种情况?有了 4 GB 的 RAM,我应该能够节省大量磁盘访问并再次使其受 CPU 限制,不是吗?
更新:所以显而易见的后续是,可以 VC++ 编译器和链接器更好地一起交谈,以简化事情并将 OBJ 文件保存在内存中,类似于 @ 987654321@是吗?
【问题讨论】:
-
我推测它留给操作系统将它们缓存在 RAM 中以避免这种情况,如果在编译时有足够的 RAM 可以这样做,它就会这样做。由于编译需要大量 RAM,这可能会导致操作系统将 OBJ 文件刷新到磁盘。如果你强制它将 OBJ 文件保存在内存中以加快链接速度,那么它可能会使编译速度仍然慢得多。
标签: c++ visual-c++ linker compilation