如何在bash中得到或记录一个进程的开始和结束时间
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
如何在bash中得到或记录一个进程的开始和结束时间
本人要统计一些数据,想在bash中开启大量进程进行测试,但有个问题是如何将每个进程的具体时间记录下来? 这个时间应该要比S还要精确才行吧
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
另外,怎样测试进程才算是好方法?我想试一下不同的调度算法的影响。
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
Re: 如何在bash中得到或记录一个进程的开始和结束时间
代码: 全选
time command
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
alias 爱慕颇雷尔='mplayer'
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
这个不是只计算运行时间吗?
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
Re: 如何在bash中得到或记录一个进程的开始和结束时间
那就用这个:
精确到纳秒
代码: 全选
date +%s.%N
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
alias 爱慕颇雷尔='mplayer'
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
好的 试试 希望大家都提写好东西
谢谢你
prccmd1 &
date +%s.%N
prccmd2 &
如何知道中间打出来的命令是后面的开始时间呢,这样之能做一个大概的评估吧,可能后两条命令间延迟‘严重’
谢谢你
prccmd1 &
date +%s.%N
prccmd2 &
如何知道中间打出来的命令是后面的开始时间呢,这样之能做一个大概的评估吧,可能后两条命令间延迟‘严重’
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
而且还有结束时间呢
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
突然想起来 我自己可以写一个程序体 在头和尾把tick打印出来,然后再装载成进程,反正都是模拟的。
现在问题是怎样打印出tick?
现在问题是怎样打印出tick?
上次由 xxdaystar 在 2009-04-08 17:51,总共编辑 1 次。
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
而且程序的调入和开始执行不是一个时间吧
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
gettimeofday(); 可以解决
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 如何在bash中得到或记录一个进程的开始和结束时间
http://linux.chinaunix.net/bbs/viewthre ... id=1056687xxdaystar 写了:gettimeofday(); 可以解决
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
目前负债150多万
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
关键是如何将他自动化记录下来,如果一大堆的进程同时运行的话,PID号恐怕是未知的。xhy 写了:http://linux.chinaunix.net/bbs/viewthre ... id=1056687xxdaystar 写了:gettimeofday(); 可以解决
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
比如
#!/bin/bash
myproc1 &;
myproc2 &;
myproc3 &;
myproc4 &;
....
如果采用下面方法倒是可以作一个大致估计
#!/bin/bash
echo someting; date +%s.%N
myproc1 &;
echo someting; date +%s.%N
myproc2 &;
echo someting; date +%s.%N
myproc3 &;
echo someting; date +%s.%N
myproc4 &;
....
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 如何在bash中得到或记录一个进程的开始和结束时间
xxdaystar 写了:关键是如何将他自动化记录下来,如果一大堆的进程同时运行的话,PID号恐怕是未知的。xhy 写了:http://linux.chinaunix.net/bbs/viewthre ... id=1056687xxdaystar 写了:gettimeofday(); 可以解决
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
比如
#!/bin/bash
myproc1 &;
myproc2 &;
myproc3 &;
myproc4 &;
....
如果采用下面方法倒是可以作一个大致估计
#!/bin/bash
echo someting; date +%s.%N
myproc1 &;
echo someting; date +%s.%N
myproc2 &;
echo someting; date +%s.%N
myproc3 &;
echo someting; date +%s.%N
myproc4 &;
....
如果你要保证每一个进程都不漏网,只有两个办法
1 所有的进程都由你创建,你可以自行写log
2 hook掉fork系统调用,和exit系统调用,你就可以知道每个进程的生存时间区间
目前负债150多万
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 如何在bash中得到或记录一个进程的开始和结束时间
xhy 写了:xxdaystar 写了:关键是如何将他自动化记录下来,如果一大堆的进程同时运行的话,PID号恐怕是未知的。xhy 写了:http://linux.chinaunix.net/bbs/viewthre ... id=1056687xxdaystar 写了:gettimeofday(); 可以解决
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
比如
#!/bin/bash
myproc1 &;
myproc2 &;
myproc3 &;
myproc4 &;
....
如果采用下面方法倒是可以作一个大致估计
#!/bin/bash
echo someting; date +%s.%N
myproc1 &;
echo someting; date +%s.%N
myproc2 &;
echo someting; date +%s.%N
myproc3 &;
echo someting; date +%s.%N
myproc4 &;
....
如果你要保证每一个进程都不漏网,只有两个办法
1 所有的进程都由你创建,你可以自行写log
2 hook掉fork系统调用,和exit系统调用,你就可以知道每个进程的生存时间区间
pid也不可能是未知的,/proc下面有所有进程的pid
目前负债150多万
- xxdaystar
- 帖子: 225
- 注册时间: 2006-07-28 14:58
- 来自: 廣州
Re: 如何在bash中得到或记录一个进程的开始和结束时间
谢谢你的回答。xhy 写了:xhy 写了:xxdaystar 写了:关键是如何将他自动化记录下来,如果一大堆的进程同时运行的话,PID号恐怕是未知的。xhy 写了:http://linux.chinaunix.net/bbs/viewthre ... id=1056687xxdaystar 写了:gettimeofday(); 可以解决
就是另一个问题不知怎么办,如何才知道进程的被调入时间,这个时间应该和被执行第一句的时间不是一个。
比如
#!/bin/bash
myproc1 &;
myproc2 &;
myproc3 &;
myproc4 &;
....
如果采用下面方法倒是可以作一个大致估计
#!/bin/bash
echo someting; date +%s.%N
myproc1 &;
echo someting; date +%s.%N
myproc2 &;
echo someting; date +%s.%N
myproc3 &;
echo someting; date +%s.%N
myproc4 &;
....
如果你要保证每一个进程都不漏网,只有两个办法
1 所有的进程都由你创建,你可以自行写log
2 hook掉fork系统调用,和exit系统调用,你就可以知道每个进程的生存时间区间
pid也不可能是未知的,/proc下面有所有进程的pid
可能我表述得不太准确,其实我想说的是 并不是说怕漏掉,因为/proc下有所有的进程信息,只是不知道怎么将他们每个进程号与bash脚本中的未执行进程联系起来。因为一个进程在没有执行前是不知道他将得到的进程号的吧? 而且进程太短了的话恐怕连读都没来得读在/proc下就结束了..