shell脚本 统计一段程序运行时间【转】
- 转自:https://bbs.csdn.net/topics/391943383
#include <stdio.h>- #include <stdlib.h>
- #include <string.h>
- #ifdef _MSC_VER
- #pragma warning(disable:4996)
- #include <windows.h>
- #include <io.h>
- #else
- #include <unistd.h>
- #include <sys/time.h>
- #include <pthread.h>
- #define CRITICAL_SECTION pthread_mutex_t
- #define _vsnprintf vsnprintf
- #endif
- //Log{
- #define MAXLOGSIZE 20000000
- #define MAXLINSIZE 16000
- #include <time.h>
- #include <sys/timeb.h>
- #include <stdarg.h>
- char logfilename1[]="MyLog1.log";
- char logfilename2[]="MyLog2.log";
- static char logstr[MAXLINSIZE+];
- char datestr[];
- char timestr[];
- char mss[];
- CRITICAL_SECTION cs_log;
- FILE *flog;
- #ifdef _MSC_VER
- void Lock(CRITICAL_SECTION *l) {
- EnterCriticalSection(l);
- }
- void Unlock(CRITICAL_SECTION *l) {
- LeaveCriticalSection(l);
- }
- #else
- void Lock(CRITICAL_SECTION *l) {
- pthread_mutex_lock(l);
- }
- void Unlock(CRITICAL_SECTION *l) {
- pthread_mutex_unlock(l);
- }
- #endif
- void LogV(const char *pszFmt,va_list argp) {
- struct tm *now;
- struct timeb tb;
- if (NULL==pszFmt||==pszFmt[]) return;
- _vsnprintf(logstr,MAXLINSIZE,pszFmt,argp);
- ftime(&tb);
- now=localtime(&tb.time);
- sprintf(datestr,"%04d-%02d-%02d",now->tm_year+,now->tm_mon+,now->tm_mday);
- sprintf(timestr,"%02d:%02d:%02d",now->tm_hour ,now->tm_min ,now->tm_sec );
- sprintf(mss,"%03d",tb.millitm);
- printf("%s %s.%s %s",datestr,timestr,mss,logstr);
- flog=fopen(logfilename1,"a");
- if (NULL!=flog) {
- fprintf(flog,"%s %s.%s %s",datestr,timestr,mss,logstr);
- if (ftell(flog)>MAXLOGSIZE) {
- fclose(flog);
- if (rename(logfilename1,logfilename2)) {
- remove(logfilename2);
- rename(logfilename1,logfilename2);
- }
- } else {
- fclose(flog);
- }
- }
- }
- void Log(const char *pszFmt,...) {
- va_list argp;
- Lock(&cs_log);
- va_start(argp,pszFmt);
- LogV(pszFmt,argp);
- va_end(argp);
- Unlock(&cs_log);
- }
- //Log}
- int main(int argc,char * argv[]) {
- int i;
- #ifdef _MSC_VER
- InitializeCriticalSection(&cs_log);
- #else
- pthread_mutex_init(&cs_log,NULL);
- #endif
- for (i=;i<;i++) {
- Log("This is a Log %04d from FILE:%s LINE:%d\n",i, __FILE__, __LINE__);
- }
- #ifdef _MSC_VER
- DeleteCriticalSection(&cs_log);
- #else
- pthread_mutex_destroy(&cs_log);
- #endif
- return ;
- }
- //1-79行添加到你带main的.c或.cpp的那个文件的最前面
- //81-86行添加到你的main函数开头
- //90-94行添加到你的main函数结束前
- //在要写LOG的地方仿照第88行的写法写LOG到文件MyLog1.log中
shell脚本 统计一段程序运行时间【转】的更多相关文章
- Shell脚本统计文件行数
Shell脚本统计文件行数 转自 http://www.jb51.net/article/61943.htm 示例:row_count.sh文件 awk '{print NR}' row_cou ...
- 采用shell脚本统计代码的行数
刚毕业那会儿有一次去台湾公司面试,我问多行代码怎么写.我从来没有想过这个问题,粗略计算,.惊叹:大概几十万行不行. 最近整理资料,看着eclipse左边全面上市,我觉得这个东西.代码共同拥有的行倒底总 ...
- shell脚本统计多个CPU利用率
本节主要内容:top命令统计CPU的利用率 一,问题分析 MySQL在Linux下是多线程的,而且只能将多个线程分布到一个CPU上.因此,使用小型服务器,或者PC SERVER,多个CPU利用率并不高 ...
- 利用shell脚本统计文件中出现次数最多的IP
比如有如下文件test.txt 1 134.102.173.43 2 134.102.173.43 3 134.102.171.42 4 134.102.170.9 要统计出现次数最多的IP可 ...
- ssh远程调用之shell脚本远程调用应用程序
1.引子 前几天有一个需求是这样的:本机的shell脚本,通过远程调用另一台机子上的shell脚本,来完成对远程机子上分发的Java程序的执行和其他操作.看上去挺容易,实际上也不难. 第一步:用scp ...
- Shell脚本 统计店中店导出数据
有一个数据文件 yue.csv 是这样的 #head yue.csv 日期,商家名称,要求在线数,当天在线数,要求在线时长,在线时长达标数, ……"2017-12-31&quo ...
- 写个shell脚本依次运行每个程序半小时
@echo off :: 运行时间1800000毫秒 echo wscript.sleep 1800000 >run.vbs ::运行Debug/lab1.exe程序,后面是参数 start D ...
- 通过shell脚本统计elasticsearch indices每天的数量以及大小
前情提要: 最近elasticsearch集群总出问题,之前虽然修复了,现在又出现新的问题,于是PM要求拉取elasticsearch每天建立的索引有多少,索引有多大,需要对机器进行评估 客户现场无法 ...
- C#计算一段程序运行时间的三种方法
第一种方法利用System.DateTime.Now: static void SubTest() { DateTime beforDT = System.DateTime.Now; //耗时巨大的代 ...
随机推荐
- Feature Selection
两方面(发散,相关)~三方法(FWE) F:方皮卡互 W:RFE E:惩罚树 一.简介 我们的数据处理后,喂给算法之前,考虑到特征的实际情况,通常会从两个方面考虑来选择特征: 1)特征是否发散:如果一 ...
- 【.NET】VS 本地调试 无法加载Json文件
1.如果要是发布到iis,还加载不出来,那就要配置一下MIME类型: 2.本地调试时,无法加载json文件: 解决方案: 在web.config中添加如下配置:mimeMap <system.w ...
- TranslateMessage消息翻译和DispatchMessage消息分发
TranslateMessage函数将虚拟键消息转换成字符消息.比如: 消息WM_KEYDOWN和WM_KEYUP组合产生一个WM_CHAR或WM_DEADCHAR消息. 消息WM_SYSKEYDOW ...
- 互斥量、条件变量与pthread_cond_wait()函数的使用,详解(二)
1.Linux“线程” 进程与线程之间是有区别的,不过linux内核只提供了轻量进程的支持,未实现线程模型.Linux是一种“多进程单线程”的操作系统.Linux本身只有进程的概念,而其所谓的“线程” ...
- Hadoop记录-hadoop集群常见问题汇总
[问题1]HBase Shell:ERROR: org.apache.hadoop.hbase.IPc.ServerNotRunningYetException: Server is not runn ...
- HTML汇总以及CSS的一些开端
一.HTML初探 1.HTML(HyperText Markup Language):超文本标记语言指的就是超跃了txt文件,能够在里面进行一些例如:就是指页面内可以包含图片.链接 .甚至音乐.程序等 ...
- canvas加载图片需要二次刷新的问题
如题:此问题我也经在百度问问上进行了解答.https://zhidao.baidu.com/question/1048045241465845579.html 好吧,难怪现在百度那么坑人,理论水军专家 ...
- 【c++】编译器为我们实现了几个类成员函数?
#include <cassert> #include <complex> #include <iostream> class Empty{}; Empty e; ...
- PHP7 网络编程(二)daemon守护进程
前言 在一个多任务的计算机操作系统中,守护进程(英语:daemon,/ˈdiːmən/或/ˈdeɪmən/)是一种在后台执行的计算机程序.此类程序会被以进程的形式初始化.守护进程程序的名称通常以字母“ ...
- 明白生产环境中的jvm参数
明白生产环境中的jvm参数 写代码的时候,程序写完了,发到线上去运行,跑一段时间后,程序变慢了,cpu负载高了--一堆问题出来了,所以了解一下生产环境的机器上的jvm配置是有必要的.比如说: JDK版 ...