当前位置:  技术问答>linux和unix

我用什么方法计算我的程序运行了多久呢?

    来源: 互联网  发布时间:2015-10-19

    本文导语:  我知道有个clock函数,他是计算程序占用CPU的时间,如果我要晓得他从我命令行开始,到他执行结束的时间呢?怎么做? 还有,我怎么让一件指定的事情由最后一个进程来做呢?我不知道谁会是最后执行的进程啊 我...

我知道有个clock函数,他是计算程序占用CPU的时间,如果我要晓得他从我命令行开始,到他执行结束的时间呢?怎么做?
还有,我怎么让一件指定的事情由最后一个进程来做呢?我不知道谁会是最后执行的进程啊
我是用循环来fork出100个进程的,不晓得哪个最后执行:(
高手帮忙啊!

|
调用gettimeofday()函数来确定时间吧。
用一个数组保存退出的进程编号,排序或者怎么做都可以啊。发信号通知父进程吧。

|
可以参考一下用 times函数,
#include 
clock_t times(struct tms *buf)
或者也可以参考一下getrusage函数,这要用到rusage结构,它的两个成员ru_utime和ru-stime保存进程累计花费的用户和系统CPU时间。
#include 
#include 
#include 
int getrusage(int who, struct rusage *usage)
不知道有没有帮助

|
当运行时间较长时,time()函数返回值会溢出,clock()也一样,32位系统不能超过72分钟
而用getrusage()是正确的,返回值以秒为单位,精确到微秒

以前也为这个事花了些时间,gettimeofday之类,求出的只是所谓的墙上时间,当进程一直独占CPU时,结果是对的,多任务时,每次的求出的时间都会随系统内进程的不同而变化

|
这个问题我今天刚搞定,我用两天多的时间才搞定的。
我这些都是从 /proc里面得出来的,就是最原始的信息。
首先有三个时间应该清楚:1) 系统开始时间,2)进程开始时间(从系统开始以后,采用jiffies),3)现在时间
程序运行了多少时间为:现在时间-系统开始时间-进程开始时间。
现在时间很好求,
系统开始时间在/proc/stat里面,有一个btime项。
进程开始时间在/proc/进程号/stat,第二十二项为进程开始时间,它用jiffies表示,所以单位为0.01秒(正常情况)。

|
int begin,over,alltime;
begin= time((time_t*)NULL);
...
your function
...
over= time((time_t*)NULL);
alltime = over - begin; //the runtime




|
it can be done by the shell command
for example, u writes a program called myprogm
then u can type
time ./myprogm
the program can run as normal, and the shell will display the run time of the program.

maybe it can not solve your problem, because i don't know how to evaluate the time the c programming. i think time.h will be helpful to u.

|
怎么会不知道哪个是最后的fork呢
举个例子
for (i = 0; i 

    
 
 

您可能感兴趣的文章:

  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • SQL Server降权运行 SQL Server 2000以GUESTS权限运行设置方法
  • 如何在运行时返回对象的方法并绑定其操作?
  • Runnable接口的run方法的运行
  • 请问各位高手,有什么好方法监视运行着的程序?
  • 错误22022 SQLServerAgent当前未运行的解决方法
  • 未能运行 ..CSharpAddWebFormWiz.vsz 向导的解决方法
  • 监测程序或系统运行时间的方法,有吗?
  • 开发板运行交互式网页,控件包含linux命令,用什么方法实现?
  • 在maven工程里运行java main方法
  • 请教通过SSH使程序持续运行的方法
  • 求UNIX下C++程序只运行一个实例的方法及范例
  • 部署到iis后无法加载运行CSS文件的解决方法
  • android工程下不能运行java main程序的解决方法
  • Android中代码运行指定Apk的简单方法
  • 大家能给一种让JSP container以windows服务的形式运行的方法?拜托!
  • 查看 MySQL 已经运行多长时间的方法
  • 如何运行Python程序的方法
  • 有没有提高java运行效率的方法,工具或是编程的技巧!
  • 我现在在编写一个在LINUX下运行的命令解释器,对于后台运行的命令方法有些不懂,请高手指点一下
  • 用什么方法可以查看在windows下jvm下运行当前java程序的线程数和线程名称?
  • php计算数组不为空元素个数的方法
  • linux命令行下用ctrl+alt+del重启计算机是否是正确的重启方法?
  • php判断闰年的三种方法(闰年计算方法)
  • 用PHP来计算某个目录大小的方法
  • 根据日期知道当天是星期几的手动计算方法
  • java计算自然数中的水仙花数的方法分享
  • jQuery 计算iframe 窗口大小的方法
  • java中计算字符串长度的方法及u4E00与u9FBB的认识
  • C语言实现计算树的深度的方法
  • php计算日期相差天数二种方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 诸位大瞎:jsp中不能写方法,可能是因为这个页面里的所有语句都在某个方法中。 我想问一下,怎么复用某个页面里的程序呢? 不用 bean,因为程序要显示很多 html,用 include 也不行,因为 页面有传入参数。
  • 程序员赚钱致富的6种方法
  • 把java源程序生成应用程序有哪些方法?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 请问大侠: 2.4下应用程序(user space)传大量数据给内核模块(kernel space)的可选方法和最佳方法.
  • 程序中用何函数或方法才知道所运行的java程序名?
  • 深入C#任务管理器中应用程序选项隐藏程序本身的方法详解
  • linux下用C写个客户端程序,定时执行该程序的方法!
  • 我的JAVA程序中的mouseMoved方法怎么用不了。。。
  • C# 获取(非)Web程序根目录的可用方法
  • IIS7.5 http 1.1 新建应用程序失败的解决方法
  • CSS属性参考手册 iis7站长之家
  • 写一个Liunx 下的java 程序,怎样才能使kill pid的方法杀不死他呢?
  • [新手提问]请问在命令行下追踪程序输出信息的方法
  • 大家讨论一下用QT及OSS实现LINUX下的录音程序的方法,说出想法就给分
  • 寻求linux命令行程序远程web界面的制作方法
  • 请问大侠,有什么方法能对JSP程序页面自动刷新。
  • 求,win-xp下能写ext3分区的方法-程序!
  • linux下编写NEC遥控器响应程序的方法
  • 求《华容道》的编程方法(思路)和源程序!!
  • java命名空间java.awt.im类inputcontext的类成员方法: getinputmethodcontrolobject定义及介绍
  • 实现在同一方法中获取当前方法中新赋值的session值解决方法
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: getcontrolobject定义及介绍
  • 突然想到一个奇怪的问题:如果一个非abstract类中包含一个空方法体(及非Java代码写的方法体是空的)的native方法,编译会通过吗?
  • java命名空间java.lang类runtime的类成员方法: runfinalization定义及介绍
  • 构造方法到底怎么用,构造方法体中可以放些什么东西,它和一般方法有什么本质区别功能上
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: dispose定义及介绍
  • jquery中slideUp()方法与slideDown()方法
  • java命名空间javax.swing类rowsorter<m>的类成员方法: allrowschanged定义及介绍
  • jquery中fadeIn()方法与fadeOut()方法(示例)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3