正文

使用cache加快编译速度的命令详解(使用cache可以提高计算机运行速度,这是因为__)居然可以这样

文章摘要

这篇文章介绍了在Ubuntu系统上使用ccache加速ZeroMQ项目的编译过程。首先,文章指导读者安装ccache工具并配置环境变量,如设置`USE_CCACHE=1`、`CCACHE_SLOPPINESS`和`CCACHE_UMASK`。接着,通过`ccache -M`查看默认缓存空间,并使用`ccache --version`确认安装是否成功。文章还详细描述了通过`ccache -s`查看项目缓存状态,包括缓存命中率、编译次数等信息。 此外,文章介绍了使用CMakeLists.txt文件配置ccache的工作流程。通过`find_program(CACHE_FOUND ccache)`和设置相关环境变量,实现了在编译时启用ccache。文章还通过`cmake ..`命令执行编译,并使用`/usr/bin/time`命令测试了编译速度,结果显示ccache在优化编译速度方面具有显著效果。 文章的最后提到,ccache在第一次启用时不会立即提高编译速度,而是将编译缓存保存到`/home/username/.ccache`目录中,以便在后续编译时使用。通过这种方法,用户可以显著提高编译效率,同时减少了对系统资源的占用。


目录Ubuntu 安装ccache使用libzmq测试ccache
sudo apt-get install ccache安装完后确认安装执行which ccache
$ which ccache /usr/bin/ccache

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

# ccache export USE_CCACHE=1 export CCACHE_SLOPPINESS=file_macro,include_file_mtime,time_macros export CCACHE_UMASK=002

source /.bashrc或者/.zshrc

4. ccache默认设置的5G磁盘空间,正常来说够用,如果担心不够可以改大一些,

ccache -M 30G

5. 通过版本确认安装成功
$ ccache –version ccache version 3.4.1 Copyright (C) 2002-2007 Andrew Tridgell Copyright (C) 2009-2018 Joel Rosdahl

6.可以通过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

1.通过github下载 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.

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 -j3 result: 48.79user 14.25system 0:21.60elapsed 291%CPU (0avgtext+0avgdata 176036maxresident)k 0inputs+282248outputs (0major+2406923minor)pagefaults 0swaps

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

7.重新 cmake ..

8.使用 /usr/bin/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

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

您可能感兴趣的文章:Gradle?Build?Cache引发的Task缓存编译问题Linux下memcache编译安装与基本使用教程Windows下编译PHP和memcache扩展教程linux下编译安装memcached服务浅析使用Turck-mmcache编译来加速、优化PHP代码ubuntu下编译安装xcache for php5.3 的具体操作步骤编译php 5.2.14+fpm+memcached(具体操作详解)ubuntu 编译安装php 5.3.3+memcache的方法