Linux shell编程学习笔记83:time命令——争分夺秒

news2024/11/15 23:54:23

0 引言

在DOS或Windows中,我们可以使用time命令来查看或修改系统时间。

但是在Linux中,time命令的功能却与DOS或Windows迥然不同。

1 time命令 的功能、帮助信息、命令格式和参数说明

1.1 time命令 的功能

在Linux,time命令的功能是测量特定指令执行时所需消耗的时间及系统资源等信息,例如 CPU 时间、内存、输入输出等等。

time命令对于测试我们自己编写的脚本和命令的性能非常有用。

例如,如果我们为做同样的工作,分别编写了两个不同的脚本,想知道哪一个表现得更好,那么就可以使用time命令来确定每个脚本的执行时间。

然而,需要特别注意的是,因为在不同版本的 Linux 上,部分资源的分配函数与 time 命令所预设的方式并不相同,这会导 time 命令无法取得这些资料的相关信息。

1.2 time命令的帮助信息

我们使用-h、--help、-?或--?均无法获得time命令的帮助信息。

[purpleendurer @ bash ~ ] time -h
bash: -h: command not found

real    0m0.001s
user    0m0.001s
sys     0m0.000s
[purpleendurer @ bash ~ ] time --help
bash: --help: command not found

real    0m0.001s
user    0m0.001s
sys     0m0.000s
[purpleendurer @ bash ~ ] time -?
bash: -?: command not found

real    0m0.001s
user    0m0.001s
sys     0m0.000s
[purpleendurer @ bash ~ ] time --?
bash: --?: command not found

real    0m0.001s
user    0m0.000s
sys     0m0.000s
[purpleendurer @ bash ~ ] 

这样一来,我们只能通过man time命令来获取帮助信息了。

1.3 time命令的命令格式

time [命令]

1.4 time命令的参数说明

命令:需要测试运行时间的命令及其参数。

2 time命令运用实例

当我们在不同的shell上运行time命令,返回的信息不尽相同。

2.1 在bash上运行

[purpleendurer @ bash ~ ] time

real    0m0.000s
user    0m0.000s
sys     0m0.000s
[purpleendurer @ bash ~ ] time ls
Code

real    0m0.001s
user    0m0.000s
sys     0m0.001s
[purpleendurer @ bash ~ ] time ls -a
.  ..  .bash_logout  .bash_profile  .bashrc  .cache  Code  .local  .oh-my-zsh  .pip  .zcompdump-edu-5.0.2  .zsh_history  .zshrc

real    0m0.001s
user    0m0.001s
sys     0m0.000s
[purpleendurer @ bash ~ ] 

2.2 在zsh上运行

[purpleendurer @ zsh \w ] time
shell  0.03s user 0.01s system 0% cpu 6:32.84 total
children  0.03s user 0.02s system 0% cpu 6:32.84 total
[purpleendurer @ zsh \w ] time ls
Code
ls --color=tty  0.00s user 0.00s system 86% cpu 0.002 total
[purpleendurer @ zsh \w ] time ls -a                      
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  Code  .local  .oh-my-zsh  .pip  .zcompdump-edu-5.0.2  .zsh_history  .zshrc
ls --color=tty -a  0.00s user 0.00s system 82% cpu 0.002 total
[purpleendurer @ zsh \w ] 

2.3 在sh上运行

[purpleendurer @ sh ~ ] ls
Code
[purpleendurer @ sh ~ ] time
user    0m0.00s
sys     0m0.00s
[purpleendurer @ sh ~ ] time ls
Code

real    0m0.001s
user    0m0.000s
sys     0m0.001s
[purpleendurer @ sh ~ ] time ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  Code  .local  .oh-my-zsh  .pip  .zcompdump-edu-5.0.2  .zsh_history  .zshrc

real    0m0.001s
user    0m0.001s
sys     0m0.000s
[purpleendurer @ sh ~ ] 

可以看到,time命令在bash、zsh和sh中执行后反馈的信息各有不同,但基本包括了以下三项信息:

  1. real 或 total 或 elapsed(wall clock time,挂钟时间):命令从开始执行到结束的时间。也就是从你按下回车键的那一刻开始,到命令完成的那一刻为止的时间。这段时间包括其他进程所占用的时间片(time slice)以及进程被阻塞时所花费的时间(例如,为等待IO操作完成所用的时间)。
  2. user :命令进程在内核之外的用户模式(user mode)下花费的CPU时间。这是唯一真正用于执行命令进程所花费的时间。执行其他命令进程以及花费在阻塞状态中的时间并没有计算在内。
  3. system 或 sys :命令进程在内核模式下花费的CPU时间。它代表在内核中执行系统调用所使用的时间,这和库代码(library code)不同,库代码(library code)仍旧运行在用户空间(user space)。与“user” 时间类似,这也是真正由命令进程使用的CPU时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2160695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙 OS 开发单词打卡 APP 项目实战 20240922 笔记和源码分享

配套有完整的录播课, 需要的私信. 零基础入门级别, 有点前端基础都能学会. 效果截图: 代码截图: 页面完整代码: import { AnswerStatus } from ../enums/AnswerStatus import { PracticeStatus } from ../enums/PracticeStatus import { getRandomQuestions, Question …

江协科技STM32学习- P17 TIM输入捕获

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

【C++篇】探寻C++ STL之美:从string类的基础到高级操作的全面解析

文章目录 C string 类详解:从入门到精通前言第一章:C 语言中的字符串 vs C string 类1.1 C 语言中的字符串1.2 C string 类的优势 第二章:string 类的构造与基础操作2.1 string 类的构造方法2.1.1 示例代码:构造字符串 2.2 string…

Kotlin 多种形式的 when 表达式(七)

导读大纲 1.0.1 在变量中捕捉 when 表达式1.0.2 对任意对象使用 when 表达式1.0.3 使用不带参数的 when 表达式 when 表达式专题系列 从枚举类引出 when 表达式 1.0.1 在变量中捕捉 when 表达式 在前面的示例中,when 表达式的评估值是color变量 它是通过调用 measureColor() …

pip的安装和使用

pip的安装和使用 1、 pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。便于我们对Python的资源包进行管理。 2、注:pip 已内置于 Python 3.4 和 2.7 及以上版本,其他版本需另行安装。 3、在安…

java并发工具包JUC(Java Util Concurrent)

1. 什么是JUC 1.1 JUC简介 JUC(Java Util Concurrent)是Java中的一个并发工具包,提供了一系列用于多线程编程的类和接口,旨在简化并发编程并提高其效率和可维护性。JUC库包含了许多强大的工具和机制,用于线程管理、同…

多比特AI事业部VP程伟光受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 武汉市多比特信息科技有限公司AI事业部VP程伟光先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“AI对于项目经理工作的影响和变化解析”。大会将于10月26-27日在北京举办&am…

如何将Vue项目部署至 nginx

一、准备工作 1.确保安装了开发软件 VS Code(此处可查阅安装 VS Code教程),确保相关插件安装成功 2.安装Node.js 和创建Vue项目(此处可查阅安装创建教程) 3.成功在VS Code运行一个Vue项目(此处可查阅运行…

【LeetCode】动态规划—打家劫舍(附完整Python/C++代码)

动态规划—#198. 打家劫舍 前言题目描述基本思路1. 问题定义:2. 理解问题和递推关系:3. 解决方法:4. 进一步优化:5. 小总结: 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 总结: 前言 在这个问题中,你是一个专业的小偷,计划偷窃沿街的房…

JinDouYun性能测试工具使用方法

1.功能介绍 2. 安卓端支持安卓6及以上的版本,ios支持大部分版本 3. 可以测试游戏,视频,普通应用的性能数据,数据精准,低延迟,无侵入 4.工具下载链接 筋斗云 5.后续功能添加,高版本支持&…

网页爬虫法律与道德:探索法律边界与道德规范

目录 引言 一、网络爬虫技术概述 1.1 定义与功能 1.2 技术原理 1.3 案例分析 二、网络爬虫的法律边界 2.1 合法性要求 2.2 刑事风险 2.3 案例分析 三、网络爬虫的道德规范 3.1 尊重版权和隐私 3.2 合理使用爬虫技术 3.3 透明度和社会责任 四、技术挑战与应对策略…

[linux 驱动]块设备驱动详解与实战

目录 1 描述 2 结构体 2.1 block_device_operations 2.2 gendisk 2.3 block_device 2.4 request_queue 2.5 request 2.6 bio 3.7 blk_mq_tag_set 3.8 blk_mq_ops 3 相关函数 3.1 注册注销块设备 3.1.1 register_blkdev 3.1.2 unregister_blkdev 3.2 gendisk 结构…

SpringBoot开发——整合Hutool工具类轻松生成验证码

文章目录 1、Hutool简介2、验证码效果展示2.1 扭曲干扰验证码2.2 线条干扰验证码2.3 圆圈干扰验证码3、验证码应用场景3.1. 用户注册与身份验证3.2. 支付验证3.3. 订单与物流通知3.4. 信息安全与隐私保护3.5. 通知与提醒3.6. 其他应用场景4、Hutool工具类实现验证码生成4.1 引入…

如何使用ssm实现基于VUE的儿童教育网站的设计与实现+vue

TOC ssm676基于VUE的儿童教育网站的设计与实现vue 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全…

API公共开放平台设计

背景 随着业务发展未来会有更多的三方应用接入公司平台,目前为服务商定制的机制无法满足三方应用快速接入,所以需要一个更加通用的解决方案,开放平台势在必行。 目标 设计一套通用协议,可以支持其他应用快速接入。 说明 本方案旨在设计整体架构,以及对为何这样设计做…

React 理解 re-render 的作用、概念,并提供详细的例子解释

一、什么是 re-render 在 React 中 re-render(重新渲染) 是经常发生的行为,主要确保视图要时刻保持最新的数据来呈现。 但每次发生 re-render 也是有代价的,比如数据状态、focus 焦点、表单数据、都得重置, 遇到代码…

获取商品销量详情API:深入解析返回值,助力电商决策

在电商行业,了解商品的销量详情对于商家制定营销策略、优化库存管理和提升用户体验至关重要。通过调用获取商品销量详情的API接口,商家可以实时获取关键的销售数据,从而做出更加明智的决策。本文将深入解析获取商品销量详情API的返回值&#…

linux信号| 学习信号三步走 | 学习信号需要打通哪些知识脉络?

前言: 本节内容主要讲解linux下信号的预备知识以及信号的概念, 信号部分我们将会分为几个阶段进行讲解:信号的概念, 信号的产生, 信号的保存。本节主要讲解信号 ps:本节内容适合学习了进程相关概念的友友们进行观看哦 目录 什么是…

轻松重置 MySQL 8.0 Root 密码的简便方法!

在Windows环境下安装MySQL数据后,如果忘记了 MySQL 8.0 的 root 密码,不必担心!通过 --skip-grant-tables 和 named-pipe 模式登录后,只需几步简单的 SQL 命令即可重置密码:刷新权限表、修改密码、再刷新权限&#xff…

SpringBoot+Thymeleaf租房管理系统

> 这是一个基于SpringBootThymeleafBootstrap实现的租房管理系统。 > 功能比较完善,包括用户注册/登录、房源登记、账单费用配置、统计报告等功能。 > 模拟真实使用环境,包括了自然人与法人的身份证明录入、房产证信息录入、通过邮件推送月…