相关疑难解决方法(0)

如何使Windows与Linux一样快速地编译C++?

我知道这不是一个编程问题,而是相关的.

我在一个相当大的跨平台项目上工作.在Windows上我使用VC++ 2008.在Linux上我使用gcc.项目中有大约40k个文件.在编译和链接同一个项目时,Windows比Linux慢10到40倍.我该如何解决这个问题?

单个更改增量构建在Linux上为20秒,在Windows上为> 3分钟.为什么?我甚至可以在Linux中安装'gold'链接器,并将时间缩短到7秒.

同样,git在Linux上比Windows快10到40倍.

在git的情况下,git可能不是以最佳方式使用Windows而是使用VC++?你认为微软希望让自己的开发人员尽可能高效,而更快的编译将会有很长的路要走.也许他们试图鼓励开发人员加入C#?

作为简单的测试,找到一个包含大量子文件夹的文件夹并做一个简单的操作

dir /s > c:\list.txt
Run Code Online (Sandbox Code Playgroud)

在Windows上.执行两次并在第二次运行时间,以便从缓存中运行.将文件复制到Linux并执行等效的2次运行并在第二次运行时运行.

ls -R > /tmp/list.txt
Run Code Online (Sandbox Code Playgroud)

我有2个工作站具有完全相同的规格.HP Z600s配备12gig内存,8个内核,3.0ghz.在包含~400k文件的文件夹上,Windows需要40秒,Linux需要<1秒.

我可以设置一个注册表设置来加速Windows吗?是什么赋予了?


一些与编译时间相关的略微相关的链接,不一定是i/o.

linux windows performance compilation

139
推荐指数
9
解决办法
2万
查看次数

如何避免使用大向量初始化的“编译器限制:编译器堆栈溢出”?

在单元测试中,我收到以下编译器错误:

 The error message indicates as follows: 
 'fatal error C1063: compiler limit: compiler stack overflow'
Run Code Online (Sandbox Code Playgroud)

这是由某些包含以下内容的标头引起的:

std::vector<unsigned char> GetTestData()
{
     return { 0x1, 0x2, 0x3 }; // Very large 500kb of data
}
Run Code Online (Sandbox Code Playgroud)

如何以这种方式使用向量而不会使MSVC崩溃?请注意,该代码在clang和gcc中构建成功。

c++ visual-c++

4
推荐指数
1
解决办法
1210
查看次数

标签 统计

c++ ×1

compilation ×1

linux ×1

performance ×1

visual-c++ ×1

windows ×1