⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bench.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
字号:
/* bench.h,v 1.3 2000/06/04 22:00:03 brunsch Exp *//************************************************************************** *                                                                        * *               Copyright (C) 1995 Silicon Graphics, Inc.                * *                                                                        * *  These coded instructions, statements, and computer programs were      * *  developed by SGI for public use.  If any changes are made to this code* *  please try to get the changes back to the author.  Feel free to make  * *  modifications and changes to the code and release it.                 * *                                                                        * **************************************************************************/#ifndef __BENCH_H__#define __BENCH_H__#include <stdio.h>#include <stdarg.h>#ifndef WIN32#include <sys/time.h>#endif /* WIN32 */#define USECINSEC           1000000#define MSECINSEC           1000#define MAX_ACCEPT_SECS     180         /* maximum time master will wait for listen() */#define NCCARGS             4096#define MAXCLIENTS          1024#define MAXUSERNAME         25#define MAXPASSWD           20#define BUFSIZE             4096#define MAXTOTALPROCS       MAXCLIENTS          /* overall max # of procs */#define MAXPROCSPERNODE     MAXCLIENTS          /* max # of procs/node */#define CONTENT_LENGTH_STRING   "CONTENT-LENGTH:"#define OKSTR               "OK"#define OKSTRLEN            ((int)strlen(OKSTR))#define GOSTR               "GO"#define GOSTRLEN            ((int)strlen(GOSTR))#define READYSTR            "READY"#define READYSTRLEN         ((int)strlen(READYSTR))#define ABORTSTR            "ABORT"#define ABORTSTRLEN         ((int)strlen(ABORTSTR))#define MAXNUMOFFILES 1     /* max # of files per page */#define URL_SIZE            1024#define MAXNUMOFPAGES       100#define SIZEOF_TIMEVALTEXT  18#define SIZEOF_DOUBLETEXT   18#define SIZEOF_RQSTSTATSTEXT ((7 *  SIZEOF_TIMEVALTEXT) + \                              (12 * SIZEOF_DOUBLETEXT) + 1)#define SIZEOF_STATSTEXTBASE    (SIZEOF_RQSTSTATSTEXT + \                             (3 * SIZEOF_TIMEVALTEXT) + \                             (2 * SIZEOF_DOUBLETEXT) + 1)#define SIZEOF_STATSTEXT   (SIZEOF_STATSTEXTBASE + MAXNUMOFPAGES * SIZEOF_DOUBLETEXT)#define SIZEOF_PAGESTATSTEXT (SIZEOF_RQSTSTATSTEXT + \                              (0 * SIZEOF_TIMEVALTEXT) + \                              (3 * SIZEOF_DOUBLETEXT) + 1)#define D_PRINTF  debug && d_printf#ifdef USE_TIMEZONEtypedef struct rqst_timer {    struct timeval      entertime;    struct timezone     entertimezone;    struct timeval      beforeconnect;    struct timezone     beforeconnectzone;    struct timeval      afterconnect;    struct timezone     afterconnectzone;    struct timeval      beforeheader;    struct timezone     beforeheaderzone;    struct timeval      afterheader;    struct timezone     afterheaderzone;    struct timeval      afterbody;    struct timezone     afterbodyzone;    struct timeval      exittime;    struct timezone     exittimezone;    long unsigned int   totalbytes;    long unsigned int   bodybytes;    int                 valid;    long unsigned int   page_number;} rqst_timer_t;#elsetypedef struct rqst_timer {    struct timeval      entertime;    struct timeval      beforeconnect;    struct timeval      afterconnect;    struct timeval      beforeheader;    struct timeval      afterheader;    struct timeval      afterbody;    struct timeval      exittime;    long unsigned int   totalbytes;    long unsigned int   bodybytes;    int                 valid;    long unsigned int   page_number;} rqst_timer_t;#endif /* USE_TIMEZONE */extern void rqtimer_init(rqst_timer_t *);#ifdef USE_TIMEZONEtypedef struct rqst_stats {    struct timeval      totalresponsetime;    struct timezone      totalresponsetimezone;    double              totalresponsetimesq;    struct timeval      minresponsetime;    struct timezone      minresponsetimezone;    struct timeval      maxresponsetime;    struct timezone      maxresponsetimezone;    struct timeval      totalconnecttime;    struct timezone      totalconnecttimezone;    double              totalconnecttimesq;    struct timeval      minconnecttime;    struct timezone      minconnecttimezone;    struct timeval      maxconnecttime;    struct timezone      maxconnecttimezone;    long unsigned int   totalconnects;    long unsigned int   totalerrs;    struct timeval      totalerrortime;    struct timezone     totalerrortimezone;    double              totalbytes;    double              totalbytessq;    double              minbytes;    double              maxbytes;    double              totalbody;    double              totalbodysq;    double              minbody;    double              maxbody;} rqst_stats_t;#elsetypedef struct rqst_stats {    struct timeval      totalresponsetime;    double              totalresponsetimesq;    struct timeval      minresponsetime;    struct timeval      maxresponsetime;    struct timeval      totalconnecttime;    double              totalconnecttimesq;    struct timeval      minconnecttime;    struct timeval      maxconnecttime;    long unsigned int   totalconnects;    long unsigned int   totalerrs;    struct timeval      totalerrortime;    double              totalbytes;    double              totalbytessq;    double              minbytes;    double              maxbytes;    double              totalbody;    double              totalbodysq;    double              minbody;    double              maxbody;} rqst_stats_t;#endif /* USE_TIMEZONE */extern void rqstat_init(rqst_stats_t *);extern void rqstat_sum(rqst_stats_t *, rqst_stats_t *);extern void rqstat_print(rqst_stats_t *);extern void rqstat_fprint(FILE *, rqst_stats_t *);extern void rqstat_times(rqst_stats_t *, rqst_timer_t *);#ifdef USE_TIMEZONEtypedef struct stats {    /* char             hostname[MAXHOSTNAMELEN]; */    rqst_stats_t        rs;    struct timeval      starttime;    struct timezone      starttimezone;    struct timeval      endtime;    struct timezone      endtimezone;    struct timeval      datatime;    struct timezone     datatimezone;    long unsigned int   totalpages;    unsigned int        total_num_of_files;    unsigned int        page_numbers[MAXNUMOFPAGES];} stats_t;#elsetypedef struct stats {    /* char             hostname[MAXHOSTNAMELEN]; */    rqst_stats_t        rs;    struct timeval      starttime;    struct timeval      endtime;    struct timeval      datatime;    long unsigned int   totalpages;    unsigned int        total_num_of_files;    unsigned int        page_numbers[MAXNUMOFPAGES];} stats_t;#endif /* USE_TIMEZONE */extern void stats_init(stats_t *);extern stats_t * text_to_stats(char *);extern char * stats_to_text(const stats_t *);typedef struct page_stats {    rqst_stats_t        rs;    long unsigned int   totalpages;    unsigned int        page_size;    int                 page_valid;} page_stats_t;extern void page_stats_init(page_stats_t *);extern page_stats_t * text_to_page_stats(char *);extern char * page_stats_to_text(const page_stats_t *);/* THIS STRUCTURE DEFINES A PAGE. */typedef struct page_list {    int                 load_num;    int                 num_of_files;    char                *(filename[MAXNUMOFFILES]);    char                *(servername[MAXNUMOFFILES]);    int                 port_number[MAXNUMOFFILES];}page_list_t;/* shared variables */extern THREAD FILE *debugfile;extern int debug;extern int      savefile;extern int      timeexpired;extern long int number_of_pages;/* routines in bench.c */extern void *mymalloc(size_t size);extern int recvdata(SOCKET sock, char *ptr, int nbytes);extern int senddata(SOCKET sock, char *ptr, int nbytes);extern void rqstat_times(rqst_stats_t *rs, rqst_timer_t *rt);/* note several others listed above *//* routines in errexit.c */void errexit(const char *, ...);extern int returnerr(const char *, ...);extern int d_printf(const char *, ...);extern char *neterrstr(void);/* routines in get.c */extern int  get(char *loc, NETPORT port, char *url, rqst_timer_t *timer);/* routines in parse_file_list.c */extern int count_file_list(const char *url_list_file);extern void parse_file_list (const char *url_list_file, page_list_t *page_list,                 long int *num_of_pages, long int *num_of_files);extern long int load_percent(page_list_t *page_list, long int number_of_pages);/* routines in statistics.c (formerly statistics.h) */extern double   mean(const double, const int);extern double   variance(const double, const double, const int);extern double   stddev(const double, const double, const int);/* routines in timefunc.c (formerly timefunc.h) */extern double   timevaldouble(struct timeval *);extern void     doubletimeval(const double, struct timeval *);extern void     addtime(struct timeval *, struct timeval *);extern void     compdifftime(struct timeval *, struct timeval *, struct timeval *);extern void     mintime(struct timeval *, struct timeval *);extern void     maxtime(struct timeval *, struct timeval *);extern void     avgtime(struct timeval *, int, struct timeval *);extern void     variancetime(struct timeval *, double, int, struct timeval *);extern void     stddevtime(struct timeval *, double, int, struct timeval *);extern void     sqtime(struct timeval *, struct timeval *);extern double   thruputpersec(const double, struct timeval *);/* routines in webclient.c */extern SOCKET connectsock(char *host, NETPORT portnum, char *protocol);#endif /* !__BENCH_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -