linux 如何查看程序执行时间
- Linux
- 2025-07-12
- 3636
 Linux中,可以使用
 
 
time命令查看程序执行时间,要查看
 ls命令的执行时间,可输入
 time ls,它会显示程序的实际运行时间、用户态运行时间和系统态运行时间
Linux系统中,有多种方法可以查看程序的执行时间,以下是几种常用的方法和详细步骤:
time命令
 
time命令是Linux系统内置的一个工具,用于测量程序的执行时间,它能够显示程序的实际运行时间、用户态CPU时间和系统态CPU时间。
使用方法:
time <command>
示例:
time ls -l
输出示例:
real 0m0.001s user 0m0.000s sys 0m0.000s
- real:表示程序从开始到结束的总运行时间,包括等待时间。
- user:表示程序在用户态下运行的时间。
- sys:表示程序在内核态下运行的时间。
date命令结合脚本
 
通过在程序执行前后使用date命令记录时间,可以手动计算程序的执行时间。
使用方法:
start_time=$(date +%s.%N) <command> end_time=$(date +%s.%N) echo "Execution time: $(echo "$end_time $start_time" | bc) seconds"
示例:
start_time=$(date +%s.%N) sleep 2 end_time=$(date +%s.%N) echo "Execution time: $(echo "$end_time $start_time" | bc) seconds"
输出示例:

Execution time: 2.000 seconds
perf命令
 
perf是一个强大的性能分析工具,可以用来统计程序的执行时间以及CPU周期、指令数等性能指标。
使用方法:
perf stat <command>
示例:
perf stat ls -l
输出示例:
Performance counter stats for 'ls -l':
      22,933 cache-references    #    0.178 M/sec                   
       6,293 cache-misses        #    27.40 % of all cache refs     
       4,907,820 page-faults     #    0.038 M/sec                  
      13,838,583 cycles          #    0.107 GHz                    
       4,789,491 instructions     #    2.77  insn per cycle         
       605,302 branches          #  4.702 M/sec                    
       18,503 branch-misses      #    3.06 % of all branches        
       0.256785326 seconds time elapsed 
ps命令
 
ps命令可以显示当前系统中运行的进程信息,包括进程的启动时间和运行时长。
使用方法:

ps -p <PID> -o etime
<PID>是进程的ID。
示例:
ps -p 1234 -o etime
输出示例:
ETIME 0:00:02
top和htop命令
 
top和htop命令可以实时监视系统的运行状态,包括各个进程的CPU占用率和运行时间。
使用方法:
- 打开终端并输入top或htop命令。
- 在top中,按下大写的O键,然后以TIME+作为排序字段,按回车键。
- 在htop中,可以直接看到每个进程的运行时间。
systemd-analyze命令
 
systemd-analyze命令可以用来分析系统启动时间和服务(unit)的运行时间。

使用方法:
systemd-analyze blame | grep <service_name>
示例:
systemd-analyze blame | grep program.service
输出示例:
program.service 50ms
归纳表格
| 命令 | 用途 | |
|---|---|---|
| time | 测量程序的执行时间 | 实际时间、用户CPU时间、系统CPU时间 | 
| date | 手动计算程序的执行时间 | 自定义格式的时间差 | 
| perf | 分析程序的性能,包括执行时间、CPU周期、指令数等 | 性能指标统计 | 
| ps | 查看指定进程的运行时长 | 进程的运行时长 | 
| top/htop | 实时监视系统运行状态,查看进程的运行时间 | 进程的运行时间、CPU占用率等 | 
| systemd-analyze | 分析系统启动时间和服务的运行时间 | 服务的运行时间及依赖关系 | 
FAQs
Q1: time命令和date命令有什么区别?
A1: time命令是专门用来测量程序执行时间的,它会直接显示程序的实际运行时间、用户态CPU时间和系统态CPU时间,而date命令主要用于显示或设置系统的日期和时间,通过手动记录程序执行前后的时间并计算差值,可以得到程序的执行时间,但需要额外的计算步骤。
Q2: perf命令和time命令有什么区别?
A2: perf命令是一个性能分析工具,不仅可以测量程序的执行时间,还可以提供CPU周期、指令数、缓存命中率等详细的性能指标,而time命令则更简单,只提供程序的实际运行时间、用户态CPU时间和系统态CPU
 
  
			