Author: ahristov
Date: 2007-08-02 20:38:46 +0200 (Thu, 02 Aug 2007)
New Revision: 852
Modified:
trunk/mysqlnd/mysqlnd_statistics.h
Log:
Make mysqlnd.collect_statistics fully control the collection.
Macrobench shows that when mysqlnd doesn't collect stats it's about
0.5% slower. Strange, isn't it :)
Modified: trunk/mysqlnd/mysqlnd_statistics.h
===================================================================
--- trunk/mysqlnd/mysqlnd_statistics.h 2007-08-02 18:23:53 UTC (rev 851)
+++ trunk/mysqlnd/mysqlnd_statistics.h 2007-08-02 18:38:46 UTC (rev 852)
@@ -33,95 +33,89 @@
if (mysqlnd_global_stats) { \
tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
mysqlnd_global_stats->values[statistic]++; \
- tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
- } \
- \
- if ((conn_stats)) { \
- ((MYSQLND_STATS *) conn_stats)->values[statistic]++; \
- } \
+ tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
+ if ((conn_stats)) { \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic]++; \
+ } \
+ }\
}
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
{ \
- my_uint64 v = (value); \
- \
- if (mysqlnd_global_stats) {\
- tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
+ if (mysqlnd_global_stats) {\
+ my_uint64 v = (value); \
+ \
+ tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
mysqlnd_global_stats->values[statistic] += v; \
- tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
- } \
- \
- if ((conn_stats)) { \
- ((MYSQLND_STATS *) conn_stats)->values[statistic]+= v; \
- } \
- }
+ tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
+ if ((conn_stats)) { \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic]+= v; \
+ } \
+ }\
+ }
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2,
value2, statistic3, value3) \
{ \
- my_uint64 v1 = (value1); \
- my_uint64 v2 = (value2); \
- my_uint64 v3 = (value3); \
- \
if (mysqlnd_global_stats) { \
- tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
+ my_uint64 v1 = (value1); \
+ my_uint64 v2 = (value2); \
+ my_uint64 v3 = (value3); \
+ \
+ tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
mysqlnd_global_stats->values[statistic1]+= v1; \
mysqlnd_global_stats->values[statistic2]+= v2; \
mysqlnd_global_stats->values[statistic3]+= v3; \
- tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
+ tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
+ if ((conn_stats)) { \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic1]+= v1; \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic2]+= v2; \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic3]+= v3; \
+ } \
} \
- \
- if ((conn_stats)) { \
- ((MYSQLND_STATS *) conn_stats)->values[statistic1]+= v1; \
- ((MYSQLND_STATS *) conn_stats)->values[statistic2]+= v2; \
- ((MYSQLND_STATS *) conn_stats)->values[statistic3]+= v3; \
- } \
- }
+ }
#else /* NON-ZTS */
#define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \
{ \
- if (mysqlnd_global_stats) { \
+ if (mysqlnd_global_stats) { \
mysqlnd_global_stats->values[statistic]++; \
+ if ((conn_stats)) { \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic]++; \
+ } \
} \
- \
- if ((conn_stats)) { \
- ((MYSQLND_STATS *) conn_stats)->values[statistic]++; \
- } \
}
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
{ \
- my_uint64 v = (value); \
+ my_uint64 v = (value); \
\
- if (mysqlnd_global_stats) { \
+ if (mysqlnd_global_stats) { \
mysqlnd_global_stats->values[statistic]+= v; \
+ if ((conn_stats)) { \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic]+= v; \
+ } \
} \
- \
- if ((conn_stats)) { \
- ((MYSQLND_STATS *) conn_stats)->values[statistic]+= v; \
- } \
}
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2,
value2, statistic3, value3) \
- { \
- my_uint64 v1 = (value1); \
- my_uint64 v2 = (value2); \
- my_uint64 v3 = (value3); \
- \
+ { \ \
if (mysqlnd_global_stats) { \
+ my_uint64 v1 = (value1); \
+ my_uint64 v2 = (value2); \
+ my_uint64 v3 = (value3); \
+ \
mysqlnd_global_stats->values[statistic1]+= v1; \
mysqlnd_global_stats->values[statistic2]+= v2; \
mysqlnd_global_stats->values[statistic3]+= v3; \
+ if ((conn_stats)) { \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic1]+= v1; \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic2]+= v2; \
+ ((MYSQLND_STATS *) conn_stats)->values[statistic3]+= v3; \
+ } \
} \
- \
- if ((conn_stats)) { \
- ((MYSQLND_STATS *) conn_stats)->values[statistic1]+= v1; \
- ((MYSQLND_STATS *) conn_stats)->values[statistic2]+= v2; \
- ((MYSQLND_STATS *) conn_stats)->values[statistic3]+= v3; \
- } \
- }
+ }
#endif
| Thread |
|---|
| • PHP mysqlnd svn commit: r852 - trunk/mysqlnd | ahristov | 2 Aug |