iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >使用cache加快编译速度的命令详解
  • 469
分享到

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

2024-04-02 19:04:59 469人浏览 泡泡鱼
摘要

目录ubuntu 安装ccache使用libzMQ测试ccacheUbuntu 安装ccache sudo apt-get install ccache安装完后确认安装执行which

Ubuntu 安装ccache

  1. sudo apt-get install ccache
  2. 安装完后确认安装执行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

使用libzmq测试ccache

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加快编译速度内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用cache加快编译速度的命令详解

本文链接: https://www.lsjlt.com/news/165160.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用cache加快编译速度的命令详解
    目录Ubuntu 安装ccache使用libzmq测试ccacheUbuntu 安装ccache sudo apt-get install ccache安装完后确认安装执行which...
    99+
    2024-04-02
  • Android加快你的编译速度
    工欲善其事,必先利其器。如果每次运行项目都要花费5-10分钟,那人的心态都要崩了。 Gradle构建流程 Gradle 的生命周期可以分为大的三个部分:初始化阶段(Initialization Pha...
    99+
    2023-09-21
    android gradle android studio
  • 如何使用CPU加速Linux命令执行速度
    这篇文章主要介绍“如何使用CPU加速Linux命令执行速度”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用CPU加速Linux命令执行速度”文章能帮助大家解决问题。在处理大数据的时候我们总会想...
    99+
    2023-06-27
  • Verilog  8 种编译指令使用详解
    目录Verilog 编译指令define, undef`include`timescale`default_nettype`resetallcelldefine, endcellde...
    99+
    2023-05-15
    Verilog 编译指令 Verilog 编译
  • 详解JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
    目录一、前言二、编写java文件三、科补代码理解四、javap命令五、执行javap命令六、下载Jad包1. 网址下载2. 解压到指定目录3. 配置环境变量4. 常用命令查看5.实践...
    99+
    2024-04-02
  • Golang三个编译基本命令的使用小结
    目录1、go build(编译)2、go run(编译并运行)3、go install(编译并安装)在运行Go语言程序之前,先要将其编译成二进制的可执行文件 我们通常在编辑器编写完源...
    99+
    2023-05-14
    Golang 编译命令 Golang 编译
  • 关于Linuxvi命令使用详解(vim编辑器)
    目录1、三种模式以及切换2、vi模式切换命令3、粘贴和拷贝4、保存和退出5、【高级命令】 光标命令6、【高级命令】 查找命令7、【高级命令】替换命令8、【高级命令】负责剪切命令1、三...
    99+
    2023-05-14
    Linux vi Linux vi命令 vi命令使用
  • linux route命令的使用详解
    route命令是一个用于显示和管理Linux系统中IP路由表的命令。它可以用来查看和修改系统的路由表信息。route命令的基本语法如...
    99+
    2023-09-20
    linux
  • java的jps命令使用详解
    jps(Java Virtual Machine Process Status Tool) 是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上...
    99+
    2024-04-02
  • linux rm命令的使用详解
    本篇内容主要讲解“linux rm命令的使用详解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux rm命令的使用详解”吧!1.命令格式:rm [选项] 文件…2.命...
    99+
    2023-06-13
  • C++中protobuf 的交叉编译使用详解
    目录前言简介使用方式编译安装使用步骤常见问题解决方案前言 为了提高通信效率,可以采用 protobuf 替代 XML 和 Json 数据交互格式,protobuf 相对来说数据量小,...
    99+
    2024-04-02
  • C++编译器Clion的使用详解(总结)
    推荐教程 Clion2020.2.x最新激活版附安装教程(Mac Linux Windows) 最新clion2020激活附安装教程(亲测有效) Clion是由JetBrains公司...
    99+
    2024-04-02
  • 关于Linux vi命令使用详解(vim编辑器)
    目录1、三种模式以及切换2、vi模式切换命令3、粘贴和拷贝4、保存和退出5、【高级命令】 光标命令6、【高级命令】 查找命令7、【高级命令】替换命令8、【高级命令】负责剪切命令1、三种模式以及切换   &nbs...
    99+
    2023-03-31
    Linux vi Linux vi命令 vi命令使用
  • Java中jstat命令的使用详解
    目录jstat命令简介jstat命令参数输出选项-class选项-compiler选项-gc选项-gccapacity选项-gcutil选项-gccause选项-gcnew选项-gc...
    99+
    2024-04-02
  • Java中的jinfo命令使用详解
    目录jinfo命令简介jinfo命令参数-flag name-flag [+|-]name-flag name=value-flags-sysprops-h 和 -help结尾jin...
    99+
    2024-04-02
  • Git中bundle命令的使用详解
    目录1. 打包2. 验证3. 查看分支4. 导入bundle4.1. 没有gitlab服务器4.2. 有gitlab服务器4.2.1 从bundle中clone4.2.2 从bund...
    99+
    2024-04-02
  • Linux命令sed(流编辑器)的用法详解
    目录简介说明sed编辑器介绍选项与命令格式选项命令替换命令(s)命令格式通配符(正则表达式)示例1.直接替换原文件内容2.在命令行上使用多个命令简介 说明 本文介绍Linux的sed...
    99+
    2024-04-02
  • Java的jstack命令使用示例详解
    目录jstack命令简介jstack命令参数-F参数-l参数-m参数-h 和 -help结尾jstack命令简介 jstack(Java Virtual Machine Stack ...
    99+
    2024-04-02
  • linux的ln命令使用参数详解
    本篇内容主要讲解“linux的ln命令使用参数详解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux的ln命令使用参数详解”吧!这是linux中一个非常重要命令,请大家一定要熟悉。它的功能...
    99+
    2023-06-13
  • 关于加快INSERT语句执行速度和 HINT 及nologging的使用
    http://blog.itpub.net/25834554/viewspace-1054672/ 非归档,T01(LOGGING),普通INSERT语句产生的redo值:1255...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作