编译速度对于一个项目(大约2000行)来说太慢了
compilation speed is too slow for a project(about 2000 lines)
一开始,代码非常简单(少于500行),编译可以在5秒内完成
但是随着代码的增长, 编译变得越来越慢(大约需要20秒到c,并且随着代码的增长将花费更多的时间
现在我有以下文件:
Socket, AsyncSocket, WebsocketHelper, AsyncWebsocketServer, MonitorMessage, HtmlHelper, JsonHelper(Jansson库的抽象),StringHelper, SqlHelper, Logger, AddLocalServerWindow, landpointwinwindow, ServerMonitorProxyDlg
真正的问题是每次当我只想对项目
做一点改变时,它需要大量的时间来编译。。
我只想改变一个值来测试一些东西,它需要大约20秒来编译
然后我想添加JsonHelper::buildArray()函数,我需要至少2*20秒来编译:
当我完成函数的实现,我将编译,看看它是否可以编译正确,这是前20秒。然后将此方法集成到系统中并进行编译,将再耗时20秒。事实上,每次我写了大约5行代码,我都会编译它,看看是否有语法错误(在这种情况下,这是一个坏习惯吗?)
另一个问题是我总是在代码中犯语法错误(每10-20行),所以我需要一次又一次地重新编译代码。在我刚刚写的代码上花了很少的编译时间(这部分是我真正关心的),在稳定的代码上花了大量的编译时间(没有错误,我以前写过)。
如何使这种情况变得更好?如有任何建议,欢迎指教
c#编译时间很少是个问题。与c++编译器相比,微软c#编译器非常快。我在一个大型c++项目中工作,下面是我们减少长构建时间的方法:
- 减少依赖关系。如果在头文件中只使用指向类型的指针或引用,则向前声明该类型,而不是包含。
- 换一台更快的机器。我们在8核i7上开发,内存为16gb。这足够大,可以将整个源代码树放入缓存中。~135000行代码在76秒内编译完成,这通常更像是10秒,因为只有少数文件发生了变化。
- 根据应用程序,使用更快的编译器。我们有开发跨平台应用程序的优势,所以我在Linux上开发并使用g++,它比Microsoft Visual c++快几倍。clang更快了
- 花更多的时间规划你的界面。尽量不要太频繁地修改标题。如果适度使用,PIMPL习语可以帮助解决这个问题。
相关文章:
- 从命令行c++发送文本文件名
- 使用新行和不使用新行读取文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 预处理器:插入结构名称中的前一个行号
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 使用一个考虑到std::map中键值的滚动或换行的键
- MSVC多行宏编译器错误
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- C++MySQL C api用户输入行
- 如何将 txt 文件中的行分隔为组件C++
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 如何找到锁定Linux futex的C++行
- 在fstream期间忽略空行
- 具有N列和N行的矩阵,列必须具有N-1、N-2等值
- 遇到新行时,有没有办法停止istream_iterator
- 如何在文件和行号中抛出错误
- 如何在c++中从文本文件中逐行读取整数
- 数组长度,为什么从命令行获取时不能使用它?
- 编译速度对于一个项目(大约2000行)来说太慢了