ccacheを使用してgccコンパイル速度を大幅に加速
Explain
ゲームサーバーを作る時、結合度が高いため、毎回コンパイルするのはすべて全体の工事をコンパイルする必要があって、とても時間を費やして、偶然ccacheを発見して、インストールして使って、やはり不思議で、もとは5分コンパイルする工事が1分でコンパイルして完成することができて、とても使いやすくて、次のmarkはubuntuの下で使用方法をインストールします.
sudo apt-get install ccache
whereis ccache
インストールパスを表示、/usr/bin/ccache
mkdir ~/.bin
cd ~/.bin/
ln -s /usr/bin/ccache gcc
ln -s /usr/bin/ccache g++
vim ~/.bashrc
export PATH="/home/<user>/.bin:$PAHT
- 确认是否生效
which g++
/home//.bin/g++であれば成功します.
プロジェクトを直接コンパイルするのは、飛ぶような感じなのか、
xcode ccache加速:https://stackedit.io/viewer#!provider=gist&gistId=bace97f64151a503b824&filename=speedup-xcode-via-ccache-zhzheng-1.md
またccacheはandroid(MacOS)もサポートしています
Homebrew Googleのをインストール ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew update
brew install ccache
brew ccacheは/usr/local/binにインストールされ、このパスが$PATHにあることを確認します.
ccacheキャッシュサイズを設定するには、10 G を超えることが望ましい. ccache -M 200G
ccache -s
キャッシュスペース200 Gを設定しましたが、build-machineには十分なはずです.ccache-sはccacheの動作状態を表示できます
CCACHE変数を追加 変更.bashrc or.bash_profile export NDK_CCACHE=ccache
export USE_CCACHE=1
build_の変更native.sh. その中のndk-build-j 3...を ndk-build -j16
クアッドコアcpu配置8,16,32はすべてできて、自分の習慣を見て次のコードの -j16 # run ndk-build
if [[ "$buildexternalsfromsource" ]]; then
echo "Building external dependencies from source"
"$NDK_ROOT"/ndk-build -j16 -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source"
else
echo "Using prebuilt externals"
"$NDK_ROOT"/ndk-build -j16 -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"
次の内容は無視できます.
nativeを変更したくないならbuild.shは、ndk-buildツールを変更することで、gccパラレルコンパイルを強制する数に達することもできます.操作ステップは以下の通りです.
ndk-build-j 16スクリプトを作成します.内容は後述です.
ndk-build-j16 私は~/binに入れましたが、直接$NDK_に入れてもいいです.ROOT/中chmod +x ~/bin/ndk-build-j16, only once
ln -s $HOME/bin/ndk-build-j16 $NDK_ROOT/bin/ndk-build-j16
mv -v $NDK_ROOT/ndk-build ndk-build.orig
ln -s $NDK_ROOT/ndk-build-j16 $NDK_ROOT/ndk-build
~/bin/ndk-build-16 のファイルの内容、chmod+xを覚えています#!/bin/bash
# ndk-build wrapper, for ignore -jN options
# this file should put into $NDK_ROOT
# mv -v $NDK_ROOT/ndk-build ndk-build.orig
# ln -s $NDK_ROOT/ndk-build-j16 $NDK_ROOT/ndk-build
# ndk-build-j16 is current script name
options=() # the buffer array for the parameters
eoo=0 # end of options reached
NDKBUILD_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
while [[ $1 ]]
do
if ! ((eoo)); then
case "$1" in
-j[0-9]+)
shift
;;
--)
eoo=1
options+=("$1")
shift
;;
*)
options+=("$1")
shift
;;
esac
else
options+=("$1")
# Another (worse) way of doing the same thing:
# options=("${options[@]}" "$1")
shift
fi
done
$NDKBUILD_DIR/ndk-build.orig -j16 "${options[@]}"
-
Echo Chen:Blog.csdn.net/chen19870707
-
which g++
プロジェクトを直接コンパイルするのは、飛ぶような感じなのか、
xcode ccache加速:https://stackedit.io/viewer#!provider=gist&gistId=bace97f64151a503b824&filename=speedup-xcode-via-ccache-zhzheng-1.md
またccacheはandroid(MacOS)もサポートしています
Homebrew Googleのをインストール
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew update
brew install ccache
brew ccacheは/usr/local/binにインストールされ、このパスが$PATHにあることを確認します.
ccacheキャッシュサイズを設定するには、10 G を超えることが望ましい.
ccache -M 200G
ccache -s
キャッシュスペース200 Gを設定しましたが、build-machineには十分なはずです.ccache-sはccacheの動作状態を表示できます
CCACHE変数を追加 変更.bashrc or.bash_profile
export NDK_CCACHE=ccache
export USE_CCACHE=1
build_の変更native.sh. その中のndk-build-j 3...を ndk-build -j16
クアッドコアcpu配置8,16,32はすべてできて、自分の習慣を見て次のコードの -j16
# run ndk-build
if [[ "$buildexternalsfromsource" ]]; then
echo "Building external dependencies from source"
"$NDK_ROOT"/ndk-build -j16 -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source"
else
echo "Using prebuilt externals"
"$NDK_ROOT"/ndk-build -j16 -C "$APP_ANDROID_ROOT" $* \
"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"
次の内容は無視できます.
nativeを変更したくないならbuild.shは、ndk-buildツールを変更することで、gccパラレルコンパイルを強制する数に達することもできます.操作ステップは以下の通りです.
ndk-build-j 16スクリプトを作成します.内容は後述です.
ndk-build-j16 私は~/binに入れましたが、直接$NDK_に入れてもいいです.ROOT/中chmod +x ~/bin/ndk-build-j16, only once
ln -s $HOME/bin/ndk-build-j16 $NDK_ROOT/bin/ndk-build-j16
mv -v $NDK_ROOT/ndk-build ndk-build.orig
ln -s $NDK_ROOT/ndk-build-j16 $NDK_ROOT/ndk-build
~/bin/ndk-build-16 のファイルの内容、chmod+xを覚えています
#!/bin/bash
# ndk-build wrapper, for ignore -jN options
# this file should put into $NDK_ROOT
# mv -v $NDK_ROOT/ndk-build ndk-build.orig
# ln -s $NDK_ROOT/ndk-build-j16 $NDK_ROOT/ndk-build
# ndk-build-j16 is current script name
options=() # the buffer array for the parameters
eoo=0 # end of options reached
NDKBUILD_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
while [[ $1 ]]
do
if ! ((eoo)); then
case "$1" in
-j[0-9]+)
shift
;;
--)
eoo=1
options+=("$1")
shift
;;
*)
options+=("$1")
shift
;;
esac
else
options+=("$1")
# Another (worse) way of doing the same thing:
# options=("${options[@]}" "$1")
shift
fi
done
$NDKBUILD_DIR/ndk-build.orig -j16 "${options[@]}"
-
Echo Chen:Blog.csdn.net/chen19870707
-