广州明生堂生物科技有限公司


使用cache加快编译速度的命令详解

网络编程 cache加快编译速度,cache编译速度 06-18

Ubuntu 安装ccache

  1. sudo apt-get install ccache
  2. 安装完后确认安装执行which ccache
$ which ccache/usr/bin/ccache

3.在 ~/.bashrc 或者 ~/.zshrc文件内追加以下内容

# ccacheexport USE_CCACHE=1export CCACHE_SLOPPINESS=file_macro,include_file_mtime,time_macrosexport CCACHE_UMASK=002

source /.bashrc或者/.zshrc
4. ccache默认设置的5G磁盘空间,正常来说够用,如果担心不够可以改大一些,
ccache -M 30G
5. 通过版本确认安装成功

$ ccache --versionccache version 3.4.1Copyright (C) 2002-2007 Andrew TridgellCopyright (C) 2009-2018 Joel Rosdahl

6.可以通过ccache -s查看当前配置

cache directory                     /home/username/.ccacheprimary config                      /home/username/.ccache/ccache.confsecondary config      (readonly)    /etc/ccache.confstats zero time                     Fri Jul 22 16:15:40 2022cache hit (direct)                  4186cache hit (preprocessed)             875cache miss                          1069cache hit rate                      82.56 %called for link                      653cleanups performed                     0files in cache                      3209cache size                          159.3 MBmax cache size                      30.0 GB

使用libzmq测试ccache

1.通过github下载 libzmq的源码

$ git clone  https://github.com/zeromq/libzmq.gitCloning 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 43755Receiving objects: 100% (43791/43791), 21.91 MiB | 1.03 MiB/s, done.Resolving deltas: 100% (31951/31951), done.

2.在 libzmq目录内建立 build目录

3.修改CMakeLists.txt, '+'后面的代表新增

──────┬───────────────────────────────────────────────────────────────────────────────────────       │ 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)

4.在build目录执行cmake ..
打印显示 -- use ccache 表示启用ccache,但需要注意的事,每个项目在第一次启用ccache时,不会加快编译速度,而是把编译缓存保存到 /home/username/.ccache目录,供以后编译使用

$ 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 ...

5.使用 /usr/bin/time命令来记录编译耗费的时间

/usr/bin/time make -j3result:48.79user 14.25system 0:21.60elapsed 291%CPU (0avgtext+0avgdata 176036maxresident)k0inputs+282248outputs (0major+2406923minor)pagefaults 0swaps

6.rm -rf * 删除build目录内的所有文件

7.重新 cmake ..

8.使用 /usr/bin/time命令来记录编译耗费的时间

/usr/bin/time make -j3result:2.78user 2.42system 0:02.15elapsed 241%CPU (0avgtext+0avgdata 23736maxresident)k0inputs+21744outputs (0major+232849minor)pagefaults 0swaps

到此这篇关于使用cache加快编译速度的文章就介绍到这了,更多相关cache加快编译速度内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


编辑:广州明生堂生物科技有限公司

标签:目录,速度,命令,文件,时间