MYDDAS: New internal organization and new MYDDAS statistics
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1645 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
#ifndef __MYDDAS_STATISTICS_H__
|
||||
#define __MYDDAS_STATISTICS_H__
|
||||
|
||||
|
||||
#if defined MYDDAS_STATS || defined MYDDAS_TOP_LEVEL
|
||||
#ifdef MYDDAS_STATS
|
||||
|
||||
#define MYDDAS_STATS_TIME_HOURS(TIME) TIME->u.time_final.hours;
|
||||
#define MYDDAS_STATS_TIME_MINUTES(TIME) TIME->u.time_final.minutes;
|
||||
@@ -10,6 +9,7 @@
|
||||
#define MYDDAS_STATS_TIME_MILISECONDS(TIME) TIME->u.time_final.miliseconds;
|
||||
#define MYDDAS_STATS_TIME_MICROSECONDS(TIME) TIME->u.time_final.microseconds;
|
||||
|
||||
#ifdef DEBUG
|
||||
#define MYDDAS_STATS_PRINT_TIME_STRUCT(TIME) \
|
||||
if (TIME->type == time_final) { \
|
||||
printf ("%d Hours, %d Minutes, %d Seconds, %d Miliseconds, %d Microseconds", \
|
||||
@@ -23,7 +23,7 @@
|
||||
TIME->u.time_copy.tv_sec, \
|
||||
TIME->u.time_copy.tv_usec); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#define MYDDAS_STATS_INITIALIZE_TIME_STRUCT(TIME,TYPE) \
|
||||
TIME = (MYDDAS_STATS_TIME) malloc (sizeof(struct myddas_stats_time_struct)); \
|
||||
@@ -41,62 +41,138 @@
|
||||
TIME->u.time_final.microseconds = 0; \
|
||||
}
|
||||
|
||||
|
||||
MYDDAS_STATS_TIME
|
||||
myddas_stats_walltime(void);
|
||||
void
|
||||
myddas_stats_add_time(MYDDAS_STATS_TIME, MYDDAS_STATS_TIME,MYDDAS_STATS_TIME);
|
||||
void
|
||||
myddas_stats_subtract_time(MYDDAS_STATS_TIME, MYDDAS_STATS_TIME,MYDDAS_STATS_TIME);
|
||||
void
|
||||
myddas_stats_move_time(MYDDAS_STATS_TIME,MYDDAS_STATS_TIME);
|
||||
MYDDAS_STATS_TIME
|
||||
myddas_stats_time_copy_to_final(MYDDAS_STATS_TIME);
|
||||
|
||||
#endif
|
||||
/*
|
||||
Stats [1] - Total Time spent on the db_row function
|
||||
Stats [2] - Total Time spent on the translate/3 predicate
|
||||
*/
|
||||
#define MYDDAS_STATS_INITIALIZE_GLOBAL_STATS(STATS) \
|
||||
short i; \
|
||||
\
|
||||
/* For the time statistics */ \
|
||||
\
|
||||
/* First */ \
|
||||
STATS = myddas_stats_initialize_stat(STATS,time_str); \
|
||||
for(i=0;i<1;i++){ \
|
||||
myddas_stats_initialize_stat(STATS,time_str); \
|
||||
}
|
||||
|
||||
|
||||
#ifdef MYDDAS_STATS
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_ROWS(NODE,NUMBER) \
|
||||
NUMBER = NODE->totalNumberOfRows;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_ROWS(NODE,NUMBER) \
|
||||
NODE->totalNumberOfRows = NUMBER;
|
||||
/*
|
||||
Stats [1] - Total of Time Spent by the DB Server processing all the SQL Querys
|
||||
Stats [2] - Total of Time Spent by the DB Server processing the last SQL Query
|
||||
Stats [3] - Total of Time Spent by the DB Server transfering all the results of the SQL Querys
|
||||
Stats [4] - Total of Time Spent by the DB Server transfering the result of the last SQL Query
|
||||
|
||||
Stats [5] - Total number of Rows returned by the server
|
||||
Stats [6] - Total of Bytes Transfered by the DB Server on all SQL Querys
|
||||
Stats [7] - Total of Bytes Transfered by the DB Server on the last SQL Query
|
||||
Stats [8] - Number of querys made to the DBserver
|
||||
*/
|
||||
#define MYDDAS_STATS_INITIALIZE_CONNECTION_STATS(STATS) \
|
||||
short i; \
|
||||
\
|
||||
/* For the time statistics */ \
|
||||
\
|
||||
/* First */ \
|
||||
STATS = myddas_stats_initialize_stat(STATS,time_str); \
|
||||
for(i=0;i<3;i++){ \
|
||||
myddas_stats_initialize_stat(STATS,time_str); \
|
||||
} \
|
||||
\
|
||||
/* For number statistics*/ \
|
||||
for (i=0;i<4;i++){ \
|
||||
myddas_stats_initialize_stat(STATS,integer); \
|
||||
} \
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_TIME_DBSERVER(NODE,TIME) \
|
||||
TIME = NODE->totalTimeofDBServer;
|
||||
TIME = myddas_stats_get_stat(NODE->stats,1)->u.time_str.time_str;
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_TIME_DBSERVER_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,1)->count;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_TIME_DBSERVER_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,1)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_LAST_TIME_DBSERVER(NODE,TIME) \
|
||||
TIME = NODE->lastTimeofDBServer;
|
||||
TIME = myddas_stats_get_stat(NODE->stats,2)->u.time_str.time_str;
|
||||
#define MYDDAS_STATS_CON_GET_LAST_TIME_DBSERVER_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,2)->count;
|
||||
#define MYDDAS_STATS_CON_SET_LAST_TIME_DBSERVER_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,2)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_TIME_TRANSFERING(NODE,TIME) \
|
||||
TIME = NODE->totalFromDBServer;
|
||||
TIME = myddas_stats_get_stat(NODE->stats,3)->u.time_str.time_str;
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_TIME_TRANSFERING_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,3)->count;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_TIME_TRANSFERING_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,3)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_LAST_TIME_TRANSFERING(NODE,TIME) \
|
||||
TIME = NODE->lastFromDBServer;
|
||||
TIME = myddas_stats_get_stat(NODE->stats,4)->u.time_str.time_str;
|
||||
#define MYDDAS_STATS_CON_GET_LAST_TIME_TRANSFERING_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,4)->count;
|
||||
#define MYDDAS_STATS_CON_SET_LAST_TIME_TRANSFERING_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,4)->count = COUNT;
|
||||
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_ROWS(NODE,NUMBER) \
|
||||
NUMBER = myddas_stats_get_stat(NODE->stats,5)->u.integer.integer;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_ROWS(NODE,NUMBER) \
|
||||
myddas_stats_get_stat(NODE->stats,5)->u.integer.integer = NUMBER;
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_ROWS_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,5)->count;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_ROWS_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,5)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_LAST_BYTES_TRANSFERING_FROM_DBSERVER(NODE,NUMBER) \
|
||||
NUMBER = NODE->lastBytesTransfered;
|
||||
#define MYDDAS_STATS_CON_SET_LAST_BYTES_TRANSFERING_FROM_DBSERVER(NODE,NUMBER) \
|
||||
NODE->lastBytesTransfered = NUMBER;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_BYTES_TRANSFERING_FROM_DBSERVER(NODE,NUMBER) \
|
||||
NUMBER = NODE->totalBytesTransfered;
|
||||
NUMBER = myddas_stats_get_stat(NODE->stats,6)->u.integer.integer;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_BYTES_TRANSFERING_FROM_DBSERVER(NODE,NUMBER) \
|
||||
NODE->totalBytesTransfered = NUMBER;
|
||||
myddas_stats_get_stat(NODE->stats,6)->u.integer.integer = NUMBER;
|
||||
#define MYDDAS_STATS_CON_GET_TOTAL_BYTES_TRANSFERING_FROM_DBSERVER_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,6)->count;
|
||||
#define MYDDAS_STATS_CON_SET_TOTAL_BYTES_TRANSFERING_FROM_DBSERVER_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,6)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_LAST_BYTES_TRANSFERING_FROM_DBSERVER(NODE,NUMBER) \
|
||||
NUMBER = myddas_stats_get_stat(NODE->stats,7)->u.integer.integer;
|
||||
#define MYDDAS_STATS_CON_SET_LAST_BYTES_TRANSFERING_FROM_DBSERVER(NODE,NUMBER) \
|
||||
myddas_stats_get_stat(NODE->stats,7)->u.integer.integer = NUMBER;
|
||||
#define MYDDAS_STATS_CON_GET_LAST_BYTES_TRANSFERING_FROM_DBSERVER_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,7)->count;
|
||||
#define MYDDAS_STATS_CON_SET_LAST_BYTES_TRANSFERING_FROM_DBSERVER_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,7)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_CON_GET_NUMBER_QUERIES_MADE(NODE,NUMBER) \
|
||||
NUMBER = NODE->total_querys_made;
|
||||
NUMBER = myddas_stats_get_stat(NODE->stats,8)->u.integer.integer;
|
||||
#define MYDDAS_STATS_CON_SET_NUMBER_QUERIES_MADE(NODE,NUMBER) \
|
||||
NODE->total_querys_made = NUMBER;
|
||||
myddas_stats_get_stat(NODE->stats,8)->u.integer.integer = NUMBER;
|
||||
#define MYDDAS_STATS_CON_GET_NUMBER_QUERIES_MADE_COUNT(NODE,COUNT) \
|
||||
COUNT = myddas_stats_get_stat(NODE->stats,8)->count;
|
||||
#define MYDDAS_STATS_CON_SET_NUMBER_QUERIES_MADE_COUNT(NODE,COUNT) \
|
||||
myddas_stats_get_stat(NODE->stats,8)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_GET_DB_ROW_FUNCTION(TIME) \
|
||||
TIME = Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->total_db_row;
|
||||
TIME = myddas_stats_get_stat(Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->stats,1)->u.time_str.time_str;
|
||||
#define MYDDAS_STATS_GET_DB_ROW_FUNCTION_COUNT(COUNT) \
|
||||
COUNT = myddas_stats_get_stat(Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->stats,1)->count;
|
||||
#define MYDDAS_STATS_SET_DB_ROW_FUNCTION_COUNT(COUNT) \
|
||||
myddas_stats_get_stat(Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->stats,1)->count = COUNT;
|
||||
|
||||
#define MYDDAS_STATS_GET_TRANSLATE(TIME) \
|
||||
TIME = Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->total_translate;
|
||||
TIME = myddas_stats_get_stat(Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->stats,2)->u.time_str.time_str;
|
||||
#define MYDDAS_STATS_GET_TRANSLATE_COUNT(COUNT) \
|
||||
COUNT = myddas_stats_get_stat(Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->stats,2)->count;
|
||||
#define MYDDAS_STATS_SET_TRANSLATE_COUNT(COUNT) \
|
||||
myddas_stats_get_stat(Yap_REGS.MYDDAS_GLOBAL_POINTER->myddas_statistics->stats,2)->count = COUNT;
|
||||
|
||||
MYDDAS_STATS_TIME myddas_stats_walltime(void);
|
||||
void myddas_stats_add_time(MYDDAS_STATS_TIME, MYDDAS_STATS_TIME,MYDDAS_STATS_TIME);
|
||||
void myddas_stats_subtract_time(MYDDAS_STATS_TIME, MYDDAS_STATS_TIME,MYDDAS_STATS_TIME);
|
||||
void myddas_stats_move_time(MYDDAS_STATS_TIME,MYDDAS_STATS_TIME);
|
||||
MYDDAS_STATS_TIME myddas_stats_time_copy_to_final(MYDDAS_STATS_TIME);
|
||||
|
||||
/* Related to the statistics linked list */
|
||||
MYDDAS_STATS_STRUCT myddas_stats_initialize_stat(MYDDAS_STATS_STRUCT,int);
|
||||
MYDDAS_STATS_STRUCT myddas_stats_get_stat(MYDDAS_STATS_STRUCT,int);
|
||||
#endif /* MYDDAS_STATS */
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user