易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux下时间度量的深入分析

一)ANSI clock函数
1)概述:
clock 函数的返回值类型是clock_t,它除以CLOCKS_PER_SEC来得出时间,一般用两次clock函数来计算进程自身运行的时间.
ANSI clock有三个问题:
1)如果超过一个小时,将要导致溢出.
2)函数clock没有考虑CPU被子进程使用的情况.
3)也不能区分用户空间和内核空间.
所以clock函数在linux系统上变得没有意义.
2)测试
编写test1.c程序,测试采用clock函数的输出与time程序的区别.
vi test1.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main( void )
{
   long i=1000L;
   clock_t start, finish;
   double  duration;
   printf( "Time to do %ld empty loops is ", i );
   start = clock();
   while (--i){
    system("cd");
   }
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "%f seconds\n", duration );
   return 0;
}
gcc test1.c -o test1
time ./test1
Time to do 1000 empty loops is 0.180000 seconds
real    0m3.492s
user    0m0.512s
sys     0m2.972s
3)总结:
(1)程序调用 system("cd");,这里主要是系统模式子进程的消耗,test1程序不能体现这一点.
(2)0.180000 seconds秒的消耗是两次clock()函数调用除以CLOCKS_PER_SEC.
(3)clock()函数返回值是一个相对时间,而不是绝对时间.
(4)CLOCKS_PER_SEC是系统定义的宏,由GNU标准库定义为1000000.
二)times()时间函数
1)概述:
原型如下:
clock_t times(struct tms *buf);
tms结构体如下:
strace tms{
 clock_t tms_utime;
 clock_t tms_stime;
 clock_t tms_cutime;
 clock_t tms_cstime;
}
注释:
tms_utime记录的是进程执行用户代码的时间.
tms_stime记录的是进程执行内核代码的时间.
tms_cutime记录的是子进程执行用户代码的时间.
tms_cstime记录的是子进程执行内核代码的时间.
2)测试:
vi test2.c
#include <sys/times.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
static void do_cmd(char *);
st


相关文档:

dnw linux version

dnw in linux
Use xterm as a serial terminal. In Fedora 9
use "yum install screen" to install screen package.
Plug the USB-UART cable, see if there is a ttyUSB0 in /dev
Enter "screen /dev/ttyUSB0 115200,cs8,-ixon,-ixon,istrip" to connect to USB-UART.
Screen as Serial Terminal
Download the ......

linux上装多个mysql

安装步骤
   
1先安装好第一个mysql :
#tar zxvf mysql*.tar.gz
#cd mysql*
#groupadd mysql
#useradd -g mysql mysql
#./configure --prefix=/usr/local/mysql #make
#make install
#scripts/mysql_install_db
#chown -R root /usr/local/mysql
#chown -R mysql /usr/local/mysql/var
#chgr ......

Linux下的多线程编程(ZZ)


转载自:http://fanqiang.chinaunix.net/a4/b8/20010811/0905001105.html
Linux下的多线程编程
本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)
1
引言
  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼 ......

Linux挂载网络文件夹(简单NFS配置)

###########################################
###  挂载网络文件夹  ###
###########################################
NFS说明
=======
NFS是Net File System的简写,即网络文件系统.
NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。 ......

linux下实现WaitforMultipleObjects 1

  linux/unix下没有WaitforMultipleObjects,也没有类似的API,同样基于BSD Unix内核的Mac OS 也没有相似功能的函数,这是大家都知道并且郁闷的。如果要将一个多线程程序从windows下移植到使用Posix多线程的系统下,最好先在心中默念十遍“no have WaitforMultipleObjects... ...”然后只能看你的RP如何尿娃. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号