Ubuntu install ccache
- sudo apt-get install ccache
- Confirm installation execution after installation "which ccache"
$ which ccache
/usr/bin/ccache
- Add the following contents to the "~/.bashrc" or "~/.zshrc==" file
# ccache
export USE_CCACHE=1
export CCACHE_SLOPPINESS=file_macro,include_file_mtime,time_macros
export CCACHE_UMASK=002
source "~/.bashrc" or "~/.zshrc"
4. The 5 GB disk space set by default for ccache is normally enough. If you are worried about it, you can increase it, ccache -M 30G
5. Confirm successful installation through version
$ ccache --version
ccache version 3.4.1
Copyright (C) 2002-2007 Andrew Tridgell
Copyright (C) 2009-2018 Joel Rosdahl
- You can view the current configuration through ccache - s
cache directory /home/username/.ccache
primary config /home/username/.ccache/ccache.conf
secondary config (readonly) /etc/ccache.conf
stats zero time Fri Jul 22 16:15:40 2022
cache hit (direct) 4186
cache hit (preprocessed) 875
cache miss 1069
cache hit rate 82.56 %
called for link 653
cleanups performed 0
files in cache 3209
cache size 159.3 MB
max cache size 30.0 GB
Use libzmq to test ccache
- Through github download the source code of libzmq
$ git clone https://github.com/zeromq/libzmq.git
Cloning into 'libzmq'...
remote: Enumerating objects: 43791, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 43791 (delta 11), reused 24 (delta 8), pack-reused 43755
Receiving objects: 100% (43791/43791), 21.91 MiB | 1.03 MiB/s, done.
Resolving deltas: 100% (31951/31951), done.
- Create the build directory in the libzmq directory
- Modify CMakeLists. txt , '+' to add
──────┬───────────────────────────────────────────────────────────────────────────────────────
│ File: CMakeLists.txt
───────┼──────────────────────────────────────────────────────────────────────────────────────
1 │ # CMake build script for ZeroMQ
2 │ project(ZeroMQ)
3 │
4 │ if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin)
5 │ cmake_minimum_required(VERSION 3.0.2)
6 │ else()
7 │ cmake_minimum_required(VERSION 2.8.12)
8 │ endif()
9 │
10 + │ find_program(CCACHE_FOUND ccache)
11 + │ if(CCACHE_FOUND)
12 + │ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
13 + │ set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
14 + │ message(STATUS "use ccache")
15 + │ endif(CCACHE_FOUND)
16 + │
17 │ include(CheckIncludeFiles)
- Execute "cmake .." In the build directory
Print and display **"-- use ccache" **means enable ccache, but note that when each project is enabled ccache for the first time, it will not speed up the compilation speed, but save the compilation cache to the "/home/username/. cache" directory for later compilation
$ cmake ..
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- use ccache
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
...
- Use the "/usr/bin/time" command to record the compilation time
/usr/bin/time make -j3
result:
48.79user 14.25system 0:21.60elapsed 291%CPU (0avgtext+0avgdata 176036maxresident)k
0inputs+282248outputs (0major+2406923minor)pagefaults 0swaps
- "rm - rf *" delete build all files in the directory
- cmake ..
- Use the "/usr/bin/time" command to record the compilation time
/usr/bin/time make -j3
result:
2.78user 2.42system 0:02.15elapsed 241%CPU (0avgtext+0avgdata 23736maxresident)k
0inputs+21744outputs (0major+232849minor)pagefaults 0swaps
https://www.cnblogs.com/jiangyibo/p/16516932.html