当前位置:首页 » 编程软件 » 编译时间加速

编译时间加速

发布时间: 2022-07-04 07:33:41

A. 如何加快Android Studio的编译速度

作为一名Android程序员,选择一个好的IDE工具可以使开发变得非常高效,很多程序员喜欢使用Google的AndroidStudio来进行开发,但使用起来有时会出现卡顿等问题。本文介绍了几种优化AndroidStudio启动、编译、运行速度的方法。首先解决一个AndroidStudio启动报错的问题1、进入刚安装的AndroidStudio目录下的bin目录。找到idea.properties文件,用文本编辑器打开。2、在idea.properties文件末尾添加一行:disable.android.first.run=true,然后保存文件。3、关闭AndroidStudio后重新启动,便可进入界面。优化AndroidStudio启动速度1、开启gradle单独的守护进程当AndroidStudio遇到错误的时候,往往会导致AndroidStudio挂掉,为了防止推出程序,则另外开启一个线程来守护AndroidStudio的进程,具体操作。在C:\Users\.gradle这个目录下,创建gradle.properties配置文件,复制以下配置进行优化。#Project-wideGradlesettings.org.gradle.daemon=trueorg.gradle.jvmargs=-Xmx2048m-XX:MaxPermSize=512m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8org.gradle.parallel=trueorg.gradle.configureondemand=true这些配置文件主要就是增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以很好的运行。2、扩大内存64位:\studio64.exe.vmoptionsorstudio.exe.vmoptions32位:\studio.exe.vmoptionsorstudio.exe.vmoptions编辑这个文件,在最开始的两行设置内存大小,类似于eclipse.ini中的配置。配置如下:-Xms256m-Xmx1024m3、优化编译时VM大小选择file->setting->compile添加如下参数:-Xmx1024m-XX:MaxPermSize=128m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8具体参数大小视电脑配置而定。经过测试,编译速度有很大提升,比较大的项目从之前的5-8分钟可以减少到1-2分钟。OneAPMMobileInsight能够实时监测移动应用的真实用户体验,通过Agent实现端到端的应用性能分析。帮助用户提高发现应用问题的速度。并且可以深入到代码级进行应用性能问题剖析,通过可视化界面展示智能移动终端的实时运行状态。

B. 浅谈怎样加快C++代码的编译速度

C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了。比如我现在工作的源代码,哪怕使用Incredibuild调动近百台机子,一个完整的build也需要四个小时,恐怖!!!虽然平时开发一般不需要在本地做完整的build,但编译几个相关的工程就够你等上好一段时间的了(老外管这个叫monkey around,相当形象)。想想若干年在一台单核2.8GHZ上工作时的场景 - 面前放本书,一点build按钮,就低头读一会书~~~往事不堪回首。 可以想象,如果不加以重视,编译速度极有可能会成为开发过程中的一个瓶颈。那么,为什么C++它就编译的这么慢呢? 我想最重要的一个原因应该是C++基本的“头文件-源文件”的编译模型: 1.每个源文件作为一个编译单元,可能会包含上百甚至上千个头文件,而在每一个编译单元,这些头文件都会被从硬盘读进来一遍,然后被解析一遍。 2.每个编译单元都会产生一个obj文件,然后所以这些obj文件会被link到一起,并且这个过程很难并行。 这里,问题在于无数头文件的重复load与解析,以及密集的磁盘操作。 下面从各个角度给出一些加快编译速度的做法,主要还是针对上面提出的这个关键问题。 一、代码角度 1、在头文件中使用前置声明,而不是直接包含头文件。 不要以为你只是多加了一个头文件,由于头文件的“被包含”特性,这种效果可能会被无限放大。所以,要尽一切可能使头文件精简。很多时候前置申明某个namespace中的类会比较痛苦,而直接include会方便很多,千万要抵制住这种诱惑;类的成员,函数参数等也尽量用引用,指针,为前置声明创造条件。 2、使用Pimpl模式 Pimpl全称为Private Implementation。传统的C++的类的接口与实现是混淆在一起的,而Pimpl这种做法使得类的接口与实现得以完全分离。如此,只要类的公共接口保持不变,对类实现的修改始终只需编译该cpp;同时,该类提供给外界的头文件也会精简许多。 3、高度模块化 模块化就是低耦合,就是尽可能的减少相互依赖。这里其实有两个层面的意思。一是文件与文件之间,一个头文件的变化,尽量不要引起其他文件的重新编译;二是工程与工程之间,对一个工程的修改,尽量不要引起太多其他工程的编译。这就要求头文件,或者工程的内容一定要单一,不要什么东西都往里面塞,从而引起不必要的依赖。这也可以说是内聚性吧。 以头文件为例,不要把两个不相关的类,或者没什么联系的宏定义放到一个头文件里。内容要尽量单一,从而不会使包含他们的文件包含了不需要的内容。记得我们曾经做过这么一个事,把代码中最“hot”的那些头文件找出来,然后分成多个独立的小文件,效果相当可观。 其实我们去年做过的refactoring,把众多DLL分离成UI与Core两个部分,也是有着相同的效果的 - 提高开发效率。 4、删除冗余的头文件 一些代码经过上十年的开发与维护,经手的人无数,很有可能出现包含了没用的头文件,或重复包含的现象,去掉这些冗余的include是相当必要的。当然,这主要是针对cpp的,因为对于一个头文件,其中的某个include是否冗余很难界定,得看是否在最终的编译单元中用到了,而这样又可能出现在一个编译单元用到了,而在另外一个编译单元中没用到的情况。 之前曾写过一个Perl脚本用来自动去除这些冗余的头文件,在某个工程中竟然去掉多达了5000多个的include。 5、特别注意inline和template 这是C++中两种比较“先进”的机制,但是它们却又强制我们在头文件中包含实现,这对增加头文件的内容,从而减慢编译速度有着很大的贡献。使用之前,权衡一下。

C. 程序编译总要很长时间,怎么提高效率

采用模块化开发, 不开发的就不引用, 这样可大大加快编译速度.

我们项目目前约70W行代码, 纯AS, 但开发各司其职, 最后统一builder

D. 如何提高ISE的编译速度

如果你的cpu够强你应该学会如何利用好它来加速你的代码编译速度,那么你怎么才能够最大限度让你的cpu发烧呢?

下面是一个对比:

比如我的cpu是i7 3770k,

编译cocos2d-x的libcocos2d工程:

不优化:

1>Time Elapsed 00:01:35.25

优化后:

1>Time Elapsed 00:00:21.66

效果显着!!!

参考网页:

Visual Studio 2010中C++并行构建调优(1)
http://developer.51cto.com/art/201003/189235.htm

1>cl : Command line warning D9030: '/Gm' is incompatible with multiprocessing; ignoring /MP switch

解决办法是:

Properties -> Configuration Properties -> C/C++ -> Code Generation -> Enable Minimal Rebuild -> No(/Gm-)

Properties -> Configuration Properties -> C/C++ -> Geneal -> Multi-processor Compilation -> Yes(/MP)

一些含义和拓展资料:

Enable minimal rebuild
通过保存关联信息到.IDB文件,使编译器只对最新类定义改动过的源文件进行重编译,提高编译速度

Enable Incremental Compilation
同样通过.IDB文件保存的信息,只重编译最新改动过的函数

/MP (Build with Multiple Processes)

http://msdn.microsoft.com/en-us/library/bb385193.aspx

/Gm (Enable Minimal Rebuild)

http://msdn.microsoft.com/en-us/library/kfz8ad09.aspx

E. 如何加快C++代码的编译速度

最重要的一个原因应该是C++基本的"头文件-源文件"的编译模型:
每个源文件作为一个编译单元,可能会包含上百甚至上千个头文件,而在每一个编译单元,这些头文件都会被从硬盘读进来一遍,然后被解析一遍。
每个编译单元都会产生一个obj文件,然后所以这些obj文件会被link到一起,并且这个过程很难并行。
这里,问题在于无数头文件的重复load与解析,以及密集的磁盘操作。

F. 有什么办法可以加速make的编译耗时,以利用到底层的多核硬件

在使用 makefile 工具对多个源程序进行编译、连接时,首先必须要确保你需要编译的程序都是正确的,然后将编译各个源程序按照一定的先后顺序写入到一个 makefile 文件中(缺省名称叫 makefile,但是也可以使用别的文件名),在此编译过程中,到底哪一个源程序是只编译、不连接;
哪一个源程序是需要等别的源程序都编译好了之后,再进行最后的连接,这些都必须写清楚。

G. 如何提高Keil4的编译速度

没有必要提高Keil4的编译速度,短小程序的编译也就是点下鼠标的功夫就完成了。
稍长一些程序,编译也不过几秒的事。也不是需要几十分钟,想提高速度。
如果程序真的很长,编译就需要一点时间的,这提高不了速度。要提高速度,只能在写程序时,尽量优化吧。
如果你的电脑编译的时间很长的话,还是查一个系统的问题吧。

H. c++builder编译速度太慢,能不能通过设置来加快

C++builder是最快的C++编译器之一,从编译速度来说也可以说是最快的win32C++编译器了。除了速度之外,C++builder的性能也在其它C++编译器的之上,但许多delphi程序员仍受不了c++builder工程的编译速度。的确,delphi的速度要比任和c++的编译器都要快好多。Delphi在编译一个小工程的时候可能不到一秒,大的工程一般也在5秒钟这内编译完成了。

为什么delphi会比c++builder快这么多?是否有方法来c++builder的编译速度?本文就讲解了为什么C++的编译器速度会慢,并且介绍了一个简单的方法来减少c++builder的编译时间。

为什么c++编译器的速度会慢?
c++builder 使用者怎么通过预编译头文件来减少编译时间?
讲解基于VCL可视化工程的预编译头文件方法
优化c++builder对预编译头文件的使用
结论
注意事项

为什么c++编译器速度慢?

在C++中,你只能使用预定义或是预先声明了的函数,这意味什么?来看一个简单的例子,函数A()调用函数B(),函数A()只能在函数B()的原型或是函数体在A()之前才能调用它

I. 如何加快XCode编译速度

您好,很高兴为您解答。先将此开源软件配置、编译、安装成功,然后加入xcode工程中,编译,然后慢慢改错。如果我的回答对您有帮助希望您可以采纳,谢谢!如果有什么不懂的可以追问,以后有什么问题可以向我提问或者向我的团队提问。赠人玫瑰,手有余香!帮助别人,快乐自己!

J. 如何使用 CCache 进行 Cocos2d-x 编译加速

CCache是C/C++的编译器缓存。当相同的编译被再次编译时,进行检测并通过之前编译的缓存进行编译加速。所以我们可以通过这种方法给Cocos2d-x Android的编译加速。使用这种方法,在i7 CPU的Macbook Pro Retina上编译,我们的Cocos2d-x Android工程编译时间可以从10分钟减少到30秒!!

注意:以下操作仅对Mac OS X有效。

安装
我们使用homebrew:
brew install --HEAD ccache

或者通过源码安装:
git clone https://github.com/jrosdahl/ccache.git cd ccache ./autogen.sh ./configure make make install cp /usr/local/bin/ccache /usr/bin/

注意:默认的安装路径是 /usr/local/bin,我们需要拷贝ccache到/usr/bin/,不然ndk-build会找不到并报错

如果终端报错说找不到autoheader,这说明我们需要先安装automake:

brew install automake

但是,如果如果报错是说找不到brew,我们就必须先安装brew:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

确保ccache的路径可以被$PATH识别,运行命令:
ccache

如果你看到帮助信息,恭喜你,安装成功了!

在android上配置编译环境
我们必须先设置以下环境变量来使用ccache:

vim ~/.bash_profile Add following lines: export USE_CCACHE=1 export NDK_CCACHE=/usr/local/bin/ccache

运行命令行:

ccache -M 10G

这个命令将缓存大小设置为10G。当然,如果你的硬盘有足够的空间,你也可以将此设置为50G。

然后,我们跳转到NDK目录,如果你忘了这个路径,你可以使用以下命令来查看:
which ndk-build

以下是我的输出结果:
/developer/android/android-ndk-r9b/ndk-build

所以,我的NDK_ROOT是:

/developer/android/android-ndk-r9b

打开文件:$NDK_ROOT/build/core/default-build-commands.mk

找到以下章节并加入ccache,如下:

ifneq ($(findstring ccc-analyzer,$(CC)),) TARGET_CC = $(CC) else TARGET_CC = ccache $(TOOLCHAIN_PREFIX)gcc #Add ccache support endif TARGET_CFLAGS = TARGET_CONLYFLAGS = ifneq ($(findstring c++-analyzer,$(CXX)),) TARGET_CXX = $(CXX) else TARGET_CXX = ccache $(TOOLCHAIN_PREFIX)g++ #Add ccache support endif TARGET_CXXFLAGS = $(TARGET_CFLAGS) -fno-exceptions -fno-rtti

编译cocos2d-x游戏
选择cocos2d-x根目录,运行:
python build/android-build.py -p 10 cpp-tests

新建一个终端窗口,运行:

ccache -s

这个命令会打印出ccache状态,如下:

cache directory /Users/heliclei/.ccache primary config /Users/heliclei/.ccache/ccache.conf secondary config (readonly) /usr/local/etc/ccache.conf cache hit (direct) 13588 cache hit (preprocessed) 11145 cache miss 696 called for link 1 called for preprocessing 14 preprocessor error 1 can't use precompiled header 129 no input file 5 files in cache 32222 cache size 5.4 GB max cache size 30.0 GB

如果缓存的高速缓存命中(cache hit)和缓存大小(cache size)均为0,这就表示ccache没有运行,我们必须从新检查配置。

在Xcode中部署
配置Xcode(5.1)的ccache环境有点麻烦。我确实能调用ccache,但貌似没有增加编译速度。如果你有好的方法解决这个问题,请到github上为本篇教程提交pr!不过我们还是看看设置方法:

首先,我们添加2个自定义宏(user-defined macros)到cocos2d_libs的编译选项中:

CC=$(SOURCE_ROOT)/../tools/xcode_ccache_wrapper LDPLUSPLUS=$(DT_TOOLCHAIN_DIR)/usr/bin/clang++

然后,我们需要在$(COCOS2dX_ROOT)/tools/路径下创建名为xcode_ccache_wrapper的脚本:

#!/bin/bash export CCACHE_CPP2=yes export CCACHE_LOGFILE=~/Desktop/ccache.log exec /usr/local/bin/ccache /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Qunused-arguments "$@"

设置完成,我们就可以快乐的在Xcode中编译了!

打开ccache.log可以查看cache工作状态。

但问题是,添加cache后,我mbp的Xcocde依旧没有提升编译速度。有可能是我使用的脚本不正确,所以,如果你看到本章节,并知道我的问题出在哪,请到github中提交pr,修正我的错误,并造福广发开发者哦!!

热点内容
二级程序编译答案 发布:2024-05-03 18:41:35 浏览:653
领动自动精英版是哪个配置 发布:2024-05-03 18:37:30 浏览:150
java编译器中cd什么意思 发布:2024-05-03 18:36:00 浏览:389
传奇服务器如何刷钱 发布:2024-05-03 18:36:00 浏览:977
安卓版twitter怎么注册 发布:2024-05-03 18:28:05 浏览:893
Python逻辑优先级 发布:2024-05-03 18:26:14 浏览:267
linux查看svn密码 发布:2024-05-03 18:12:47 浏览:804
地铁逃生怎么进入游戏安卓 发布:2024-05-03 17:49:35 浏览:992
aws云存储 发布:2024-05-03 17:48:50 浏览:955
安卓微信王者号怎么转成苹果 发布:2024-05-03 17:44:38 浏览:745