mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Support to disable stats by default
This commit is contained in:
parent
f17fa69deb
commit
25be6d6bc0
8 changed files with 65 additions and 32 deletions
3
trunk/3rdparty/st-srs/Makefile
vendored
3
trunk/3rdparty/st-srs/Makefile
vendored
|
@ -286,6 +286,9 @@ endif
|
||||||
#
|
#
|
||||||
# make EXTRA_CFLAGS="-DMD_HAVE_SENDMMSG -D_GNU_SOURCE"
|
# make EXTRA_CFLAGS="-DMD_HAVE_SENDMMSG -D_GNU_SOURCE"
|
||||||
#
|
#
|
||||||
|
# or to enable stats for ST:
|
||||||
|
#
|
||||||
|
# make EXTRA_CFLAGS=-DDEBUG_STATS
|
||||||
##########################
|
##########################
|
||||||
|
|
||||||
CFLAGS += $(DEFINES) $(OTHER_FLAGS) $(EXTRA_CFLAGS)
|
CFLAGS += $(DEFINES) $(OTHER_FLAGS) $(EXTRA_CFLAGS)
|
||||||
|
|
10
trunk/3rdparty/st-srs/event.c
vendored
10
trunk/3rdparty/st-srs/event.c
vendored
|
@ -48,7 +48,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Global stat.
|
// Global stat.
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
unsigned long long _st_stat_epoll = 0;
|
unsigned long long _st_stat_epoll = 0;
|
||||||
unsigned long long _st_stat_epoll_zero = 0;
|
unsigned long long _st_stat_epoll_zero = 0;
|
||||||
unsigned long long _st_stat_epoll_shake = 0;
|
unsigned long long _st_stat_epoll_shake = 0;
|
||||||
|
@ -1213,7 +1213,7 @@ ST_HIDDEN void _st_epoll_dispatch(void)
|
||||||
int events, op;
|
int events, op;
|
||||||
short revents;
|
short revents;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_epoll;
|
++_st_stat_epoll;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1225,12 +1225,12 @@ ST_HIDDEN void _st_epoll_dispatch(void)
|
||||||
|
|
||||||
// At least wait 1ms when <1ms, to avoid epoll_wait spin loop.
|
// At least wait 1ms when <1ms, to avoid epoll_wait spin loop.
|
||||||
if (timeout == 0) {
|
if (timeout == 0) {
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_epoll_zero;
|
++_st_stat_epoll_zero;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (min_timeout > 0) {
|
if (min_timeout > 0) {
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_epoll_shake;
|
++_st_stat_epoll_shake;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1262,7 +1262,7 @@ ST_HIDDEN void _st_epoll_dispatch(void)
|
||||||
/* Check for I/O operations */
|
/* Check for I/O operations */
|
||||||
nfd = epoll_wait(_st_epoll_data->epfd, _st_epoll_data->evtlist, _st_epoll_data->evtlist_size, timeout);
|
nfd = epoll_wait(_st_epoll_data->epfd, _st_epoll_data->evtlist, _st_epoll_data->evtlist_size, timeout);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
if (nfd <= 0) {
|
if (nfd <= 0) {
|
||||||
++_st_stat_epoll_spin;
|
++_st_stat_epoll_spin;
|
||||||
}
|
}
|
||||||
|
|
38
trunk/3rdparty/st-srs/io.c
vendored
38
trunk/3rdparty/st-srs/io.c
vendored
|
@ -53,7 +53,7 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
// Global stat.
|
// Global stat.
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
unsigned long long _st_stat_recvfrom = 0;
|
unsigned long long _st_stat_recvfrom = 0;
|
||||||
unsigned long long _st_stat_recvfrom_eagain = 0;
|
unsigned long long _st_stat_recvfrom_eagain = 0;
|
||||||
unsigned long long _st_stat_sendto = 0;
|
unsigned long long _st_stat_sendto = 0;
|
||||||
|
@ -457,7 +457,7 @@ ssize_t st_read(_st_netfd_t *fd, void *buf, size_t nbyte, st_utime_t timeout)
|
||||||
{
|
{
|
||||||
ssize_t n;
|
ssize_t n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_read;
|
++_st_stat_read;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -467,7 +467,7 @@ ssize_t st_read(_st_netfd_t *fd, void *buf, size_t nbyte, st_utime_t timeout)
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_read_eagain;
|
++_st_stat_read_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ ssize_t st_readv(_st_netfd_t *fd, const struct iovec *iov, int iov_size, st_utim
|
||||||
{
|
{
|
||||||
ssize_t n;
|
ssize_t n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_readv;
|
++_st_stat_readv;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -509,7 +509,7 @@ ssize_t st_readv(_st_netfd_t *fd, const struct iovec *iov, int iov_size, st_utim
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_readv_eagain;
|
++_st_stat_readv_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -610,7 +610,7 @@ ssize_t st_writev(_st_netfd_t *fd, const struct iovec *iov, int iov_size, st_uti
|
||||||
tmp_iov = (struct iovec *) iov; /* we promise not to modify iov */
|
tmp_iov = (struct iovec *) iov; /* we promise not to modify iov */
|
||||||
iov_cnt = iov_size;
|
iov_cnt = iov_size;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_writev;
|
++_st_stat_writev;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -658,7 +658,7 @@ ssize_t st_writev(_st_netfd_t *fd, const struct iovec *iov, int iov_size, st_uti
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_writev_eagain;
|
++_st_stat_writev_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -680,7 +680,7 @@ int st_writev_resid(_st_netfd_t *fd, struct iovec **iov, int *iov_size, st_utime
|
||||||
{
|
{
|
||||||
ssize_t n;
|
ssize_t n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_writev;
|
++_st_stat_writev;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -710,7 +710,7 @@ int st_writev_resid(_st_netfd_t *fd, struct iovec **iov, int *iov_size, st_utime
|
||||||
(*iov)->iov_len -= n;
|
(*iov)->iov_len -= n;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_writev_eagain;
|
++_st_stat_writev_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -730,7 +730,7 @@ int st_recvfrom(_st_netfd_t *fd, void *buf, int len, struct sockaddr *from, int
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_recvfrom;
|
++_st_stat_recvfrom;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -740,7 +740,7 @@ int st_recvfrom(_st_netfd_t *fd, void *buf, int len, struct sockaddr *from, int
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_recvfrom_eagain;
|
++_st_stat_recvfrom_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -757,7 +757,7 @@ int st_sendto(_st_netfd_t *fd, const void *msg, int len, const struct sockaddr *
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_sendto;
|
++_st_stat_sendto;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -767,7 +767,7 @@ int st_sendto(_st_netfd_t *fd, const void *msg, int len, const struct sockaddr *
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_sendto_eagain;
|
++_st_stat_sendto_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -784,7 +784,7 @@ int st_recvmsg(_st_netfd_t *fd, struct msghdr *msg, int flags, st_utime_t timeou
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_recvmsg;
|
++_st_stat_recvmsg;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -794,7 +794,7 @@ int st_recvmsg(_st_netfd_t *fd, struct msghdr *msg, int flags, st_utime_t timeou
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_recvmsg_eagain;
|
++_st_stat_recvmsg_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -811,7 +811,7 @@ int st_sendmsg(_st_netfd_t *fd, const struct msghdr *msg, int flags, st_utime_t
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_sendmsg;
|
++_st_stat_sendmsg;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -821,7 +821,7 @@ int st_sendmsg(_st_netfd_t *fd, const struct msghdr *msg, int flags, st_utime_t
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_sendmsg_eagain;
|
++_st_stat_sendmsg_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -840,7 +840,7 @@ int st_sendmmsg(st_netfd_t fd, struct st_mmsghdr *msgvec, unsigned int vlen, int
|
||||||
int left;
|
int left;
|
||||||
struct mmsghdr *p;
|
struct mmsghdr *p;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_sendmmsg;
|
++_st_stat_sendmmsg;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -854,7 +854,7 @@ int st_sendmmsg(st_netfd_t fd, struct st_mmsghdr *msgvec, unsigned int vlen, int
|
||||||
if (!_IO_NOT_READY_ERROR)
|
if (!_IO_NOT_READY_ERROR)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_sendmmsg_eagain;
|
++_st_stat_sendmmsg_eagain;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
12
trunk/3rdparty/st-srs/sched.c
vendored
12
trunk/3rdparty/st-srs/sched.c
vendored
|
@ -53,7 +53,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Global stat.
|
// Global stat.
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
unsigned long long _st_stat_sched_15ms = 0;
|
unsigned long long _st_stat_sched_15ms = 0;
|
||||||
unsigned long long _st_stat_sched_20ms = 0;
|
unsigned long long _st_stat_sched_20ms = 0;
|
||||||
unsigned long long _st_stat_sched_25ms = 0;
|
unsigned long long _st_stat_sched_25ms = 0;
|
||||||
|
@ -136,7 +136,7 @@ void _st_vp_schedule(void)
|
||||||
_st_thread_t *thread;
|
_st_thread_t *thread;
|
||||||
|
|
||||||
if (_ST_RUNQ.next != &_ST_RUNQ) {
|
if (_ST_RUNQ.next != &_ST_RUNQ) {
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_thread_run;
|
++_st_stat_thread_run;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ void _st_vp_schedule(void)
|
||||||
thread = _ST_THREAD_PTR(_ST_RUNQ.next);
|
thread = _ST_THREAD_PTR(_ST_RUNQ.next);
|
||||||
_ST_DEL_RUNQ(thread);
|
_ST_DEL_RUNQ(thread);
|
||||||
} else {
|
} else {
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_thread_idle;
|
++_st_stat_thread_idle;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -509,7 +509,7 @@ void _st_vp_check_clock(void)
|
||||||
elapsed = now < _ST_LAST_CLOCK? 0 : now - _ST_LAST_CLOCK; // Might step back.
|
elapsed = now < _ST_LAST_CLOCK? 0 : now - _ST_LAST_CLOCK; // Might step back.
|
||||||
_ST_LAST_CLOCK = now;
|
_ST_LAST_CLOCK = now;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
if (elapsed <= 10000) {
|
if (elapsed <= 10000) {
|
||||||
++_st_stat_sched_15ms;
|
++_st_stat_sched_15ms;
|
||||||
} else if (elapsed <= 21000) {
|
} else if (elapsed <= 21000) {
|
||||||
|
@ -560,7 +560,7 @@ void st_thread_yield()
|
||||||
{
|
{
|
||||||
_st_thread_t *me = _ST_CURRENT_THREAD();
|
_st_thread_t *me = _ST_CURRENT_THREAD();
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_thread_yield;
|
++_st_stat_thread_yield;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -572,7 +572,7 @@ void st_thread_yield()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) && defined(DEBUG_STATS)
|
||||||
++_st_stat_thread_yield2;
|
++_st_stat_thread_yield2;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -193,6 +193,12 @@ else
|
||||||
srs_undefine_macro "SRS_DEBUG" $SRS_AUTO_HEADERS_H
|
srs_undefine_macro "SRS_DEBUG" $SRS_AUTO_HEADERS_H
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $SRS_DEBUG_STATS = YES ]; then
|
||||||
|
srs_define_macro "SRS_DEBUG_STATS" $SRS_AUTO_HEADERS_H
|
||||||
|
else
|
||||||
|
srs_undefine_macro "SRS_DEBUG_STATS" $SRS_AUTO_HEADERS_H
|
||||||
|
fi
|
||||||
|
|
||||||
# prefix
|
# prefix
|
||||||
echo "" >> $SRS_AUTO_HEADERS_H
|
echo "" >> $SRS_AUTO_HEADERS_H
|
||||||
echo "#define SRS_PREFIX \"${SRS_PREFIX}\"" >> $SRS_AUTO_HEADERS_H
|
echo "#define SRS_PREFIX \"${SRS_PREFIX}\"" >> $SRS_AUTO_HEADERS_H
|
||||||
|
|
|
@ -347,6 +347,10 @@ else
|
||||||
echo "Build ST without UDP sendmmsg support."
|
echo "Build ST without UDP sendmmsg support."
|
||||||
_ST_EXTRA_CFLAGS="$_ST_EXTRA_CFLAGS -UMD_HAVE_SENDMMSG -U_GNU_SOURCE"
|
_ST_EXTRA_CFLAGS="$_ST_EXTRA_CFLAGS -UMD_HAVE_SENDMMSG -U_GNU_SOURCE"
|
||||||
fi
|
fi
|
||||||
|
# Whether enable debug stats.
|
||||||
|
if [[ $SRS_DEBUG_STATS == YES ]]; then
|
||||||
|
_ST_EXTRA_CFLAGS="$_ST_EXTRA_CFLAGS -DDEBUG_STATS"
|
||||||
|
fi
|
||||||
# Always alloc on heap, @see https://github.com/ossrs/srs/issues/509#issuecomment-719931676
|
# Always alloc on heap, @see https://github.com/ossrs/srs/issues/509#issuecomment-719931676
|
||||||
_ST_EXTRA_CFLAGS="$_ST_EXTRA_CFLAGS -DMALLOC_STACK"
|
_ST_EXTRA_CFLAGS="$_ST_EXTRA_CFLAGS -DMALLOC_STACK"
|
||||||
# Pass the global extra flags.
|
# Pass the global extra flags.
|
||||||
|
|
|
@ -133,6 +133,7 @@ SRS_NASM=YES
|
||||||
SRS_SRTP_ASM=YES
|
SRS_SRTP_ASM=YES
|
||||||
SRS_SENDMMSG=NO
|
SRS_SENDMMSG=NO
|
||||||
SRS_DEBUG=NO
|
SRS_DEBUG=NO
|
||||||
|
SRS_DEBUG_STATS=NO
|
||||||
|
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
# menu
|
# menu
|
||||||
|
@ -162,6 +163,7 @@ Features:
|
||||||
--prefix=<path> The absolute installation path. Default: $SRS_PREFIX
|
--prefix=<path> The absolute installation path. Default: $SRS_PREFIX
|
||||||
--gcov=on|off Whether enable the GCOV compiler options. Default: $(value2switch $SRS_GCOV)
|
--gcov=on|off Whether enable the GCOV compiler options. Default: $(value2switch $SRS_GCOV)
|
||||||
--debug=on|off Whether enable the debug code, may hurt performance. Default: $(value2switch $SRS_DEBUG)
|
--debug=on|off Whether enable the debug code, may hurt performance. Default: $(value2switch $SRS_DEBUG)
|
||||||
|
--debug-stats=on|off Whether enable the debug stats, may hurt performance. Default: $(value2switch $SRS_DEBUG_STATS)
|
||||||
--jobs[=N] Allow N jobs at once; infinite jobs with no arg. Default: $SRS_JOBS
|
--jobs[=N] Allow N jobs at once; infinite jobs with no arg. Default: $SRS_JOBS
|
||||||
--log-verbose Whether enable the log verbose level. Default: $(value2switch $SRS_LOG_VERBOSE)
|
--log-verbose Whether enable the log verbose level. Default: $(value2switch $SRS_LOG_VERBOSE)
|
||||||
--log-info Whether enable the log info level. Default: $(value2switch $SRS_LOG_INFO)
|
--log-info Whether enable the log info level. Default: $(value2switch $SRS_LOG_INFO)
|
||||||
|
@ -222,7 +224,8 @@ function parse_user_option() {
|
||||||
--log-info) SRS_LOG_INFO=YES ;;
|
--log-info) SRS_LOG_INFO=YES ;;
|
||||||
--log-trace) SRS_LOG_TRACE=YES ;;
|
--log-trace) SRS_LOG_TRACE=YES ;;
|
||||||
--gcov) SRS_GCOV=YES ;;
|
--gcov) SRS_GCOV=YES ;;
|
||||||
--debug) SRS_DEBUG=YES ;;
|
--debug) if [[ $value == off ]]; then SRS_DEBUG=NO; else SRS_DEBUG=YES; fi ;;
|
||||||
|
--debug-stats) if [[ $value == off ]]; then SRS_DEBUG_STATS=NO; else SRS_DEBUG_STATS=YES; fi ;;
|
||||||
|
|
||||||
--arm) SRS_CROSS_BUILD=YES ;;
|
--arm) SRS_CROSS_BUILD=YES ;;
|
||||||
--mips) SRS_CROSS_BUILD=YES ;;
|
--mips) SRS_CROSS_BUILD=YES ;;
|
||||||
|
@ -572,7 +575,8 @@ function regenerate_options() {
|
||||||
if [ $SRS_LOG_INFO = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info"; fi
|
if [ $SRS_LOG_INFO = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-info"; fi
|
||||||
if [ $SRS_LOG_TRACE = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace"; fi
|
if [ $SRS_LOG_TRACE = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --log-trace"; fi
|
||||||
if [ $SRS_GCOV = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gcov"; fi
|
if [ $SRS_GCOV = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --gcov"; fi
|
||||||
if [ $SRS_DEBUG = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --debug"; fi
|
if [ $SRS_DEBUG = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --debug=on"; else SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --debug=off"; fi
|
||||||
|
if [ $SRS_DEBUG_STATS = YES ]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --debug-stats=on"; else SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --debug-stats=off"; fi
|
||||||
if [[ $SRS_EXTRA_FLAGS != '' ]]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --extra-flags=\\\"$SRS_EXTRA_FLAGS\\\""; fi
|
if [[ $SRS_EXTRA_FLAGS != '' ]]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --extra-flags=\\\"$SRS_EXTRA_FLAGS\\\""; fi
|
||||||
if [[ $SRS_BUILD_TAG != '' ]]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --build-tag=\\\"$SRS_BUILD_TAG\\\""; fi
|
if [[ $SRS_BUILD_TAG != '' ]]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --build-tag=\\\"$SRS_BUILD_TAG\\\""; fi
|
||||||
if [[ $SRS_TOOL_CC != '' ]]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --cc=$SRS_TOOL_CC"; fi
|
if [[ $SRS_TOOL_CC != '' ]]; then SRS_AUTO_CONFIGURE="${SRS_AUTO_CONFIGURE} --cc=$SRS_TOOL_CC"; fi
|
||||||
|
|
|
@ -39,6 +39,7 @@ extern SrsPps* _srs_pps_pub;
|
||||||
extern SrsPps* _srs_pps_conn;
|
extern SrsPps* _srs_pps_conn;
|
||||||
extern SrsPps* _srs_pps_dispose;
|
extern SrsPps* _srs_pps_dispose;
|
||||||
|
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
extern unsigned long long _st_stat_recvfrom;
|
extern unsigned long long _st_stat_recvfrom;
|
||||||
extern unsigned long long _st_stat_recvfrom_eagain;
|
extern unsigned long long _st_stat_recvfrom_eagain;
|
||||||
extern unsigned long long _st_stat_sendto;
|
extern unsigned long long _st_stat_sendto;
|
||||||
|
@ -101,6 +102,7 @@ SrsPps* _srs_pps_sched_40ms = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_sched_80ms = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_sched_80ms = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_sched_160ms = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_sched_160ms = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_sched_s = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_sched_s = new SrsPps(_srs_clock);
|
||||||
|
#endif
|
||||||
|
|
||||||
SrsPps* _srs_pps_clock_15ms = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_clock_15ms = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_clock_20ms = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_clock_20ms = new SrsPps(_srs_clock);
|
||||||
|
@ -112,6 +114,7 @@ SrsPps* _srs_pps_clock_80ms = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_clock_160ms = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_clock_160ms = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_timer_s = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_timer_s = new SrsPps(_srs_clock);
|
||||||
|
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
extern int _st_active_count;
|
extern int _st_active_count;
|
||||||
extern unsigned long long _st_stat_thread_run;
|
extern unsigned long long _st_stat_thread_run;
|
||||||
extern unsigned long long _st_stat_thread_idle;
|
extern unsigned long long _st_stat_thread_idle;
|
||||||
|
@ -121,6 +124,7 @@ SrsPps* _srs_pps_thread_run = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_thread_idle = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_thread_idle = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_thread_yield = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_thread_yield = new SrsPps(_srs_clock);
|
||||||
SrsPps* _srs_pps_thread_yield2 = new SrsPps(_srs_clock);
|
SrsPps* _srs_pps_thread_yield2 = new SrsPps(_srs_clock);
|
||||||
|
#endif
|
||||||
|
|
||||||
ISrsHybridServer::ISrsHybridServer()
|
ISrsHybridServer::ISrsHybridServer()
|
||||||
{
|
{
|
||||||
|
@ -372,14 +376,17 @@ srs_error_t SrsHybridServer::notify(int event, srs_utime_t interval, srs_utime_t
|
||||||
}
|
}
|
||||||
|
|
||||||
string recvfrom_desc;
|
string recvfrom_desc;
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
_srs_pps_recvfrom->update(_st_stat_recvfrom); _srs_pps_recvfrom_eagain->update(_st_stat_recvfrom_eagain);
|
_srs_pps_recvfrom->update(_st_stat_recvfrom); _srs_pps_recvfrom_eagain->update(_st_stat_recvfrom_eagain);
|
||||||
_srs_pps_sendto->update(_st_stat_sendto); _srs_pps_sendto_eagain->update(_st_stat_sendto_eagain);
|
_srs_pps_sendto->update(_st_stat_sendto); _srs_pps_sendto_eagain->update(_st_stat_sendto_eagain);
|
||||||
if (_srs_pps_recvfrom->r10s() || _srs_pps_recvfrom_eagain->r10s() || _srs_pps_sendto->r10s() || _srs_pps_sendto_eagain->r10s()) {
|
if (_srs_pps_recvfrom->r10s() || _srs_pps_recvfrom_eagain->r10s() || _srs_pps_sendto->r10s() || _srs_pps_sendto_eagain->r10s()) {
|
||||||
snprintf(buf, sizeof(buf), ", udp=%d,%d,%d,%d", _srs_pps_recvfrom->r10s(), _srs_pps_recvfrom_eagain->r10s(), _srs_pps_sendto->r10s(), _srs_pps_sendto_eagain->r10s());
|
snprintf(buf, sizeof(buf), ", udp=%d,%d,%d,%d", _srs_pps_recvfrom->r10s(), _srs_pps_recvfrom_eagain->r10s(), _srs_pps_sendto->r10s(), _srs_pps_sendto_eagain->r10s());
|
||||||
recvfrom_desc = buf;
|
recvfrom_desc = buf;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
string io_desc;
|
string io_desc;
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
_srs_pps_read->update(_st_stat_read); _srs_pps_read_eagain->update(_st_stat_read_eagain);
|
_srs_pps_read->update(_st_stat_read); _srs_pps_read_eagain->update(_st_stat_read_eagain);
|
||||||
_srs_pps_readv->update(_st_stat_readv); _srs_pps_readv_eagain->update(_st_stat_readv_eagain);
|
_srs_pps_readv->update(_st_stat_readv); _srs_pps_readv_eagain->update(_st_stat_readv_eagain);
|
||||||
_srs_pps_writev->update(_st_stat_writev); _srs_pps_writev_eagain->update(_st_stat_writev_eagain);
|
_srs_pps_writev->update(_st_stat_writev); _srs_pps_writev_eagain->update(_st_stat_writev_eagain);
|
||||||
|
@ -387,8 +394,10 @@ srs_error_t SrsHybridServer::notify(int event, srs_utime_t interval, srs_utime_t
|
||||||
snprintf(buf, sizeof(buf), ", io=%d,%d,%d,%d,%d,%d", _srs_pps_read->r10s(), _srs_pps_read_eagain->r10s(), _srs_pps_readv->r10s(), _srs_pps_readv_eagain->r10s(), _srs_pps_writev->r10s(), _srs_pps_writev_eagain->r10s());
|
snprintf(buf, sizeof(buf), ", io=%d,%d,%d,%d,%d,%d", _srs_pps_read->r10s(), _srs_pps_read_eagain->r10s(), _srs_pps_readv->r10s(), _srs_pps_readv_eagain->r10s(), _srs_pps_writev->r10s(), _srs_pps_writev_eagain->r10s());
|
||||||
io_desc = buf;
|
io_desc = buf;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
string msg_desc;
|
string msg_desc;
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
_srs_pps_recvmsg->update(_st_stat_recvmsg); _srs_pps_recvmsg_eagain->update(_st_stat_recvmsg_eagain);
|
_srs_pps_recvmsg->update(_st_stat_recvmsg); _srs_pps_recvmsg_eagain->update(_st_stat_recvmsg_eagain);
|
||||||
_srs_pps_sendmsg->update(_st_stat_sendmsg); _srs_pps_sendmsg_eagain->update(_st_stat_sendmsg_eagain);
|
_srs_pps_sendmsg->update(_st_stat_sendmsg); _srs_pps_sendmsg_eagain->update(_st_stat_sendmsg_eagain);
|
||||||
_srs_pps_sendmmsg->update(_st_stat_sendmmsg); _srs_pps_sendmmsg_eagain->update(_st_stat_sendmmsg_eagain);
|
_srs_pps_sendmmsg->update(_st_stat_sendmmsg); _srs_pps_sendmmsg_eagain->update(_st_stat_sendmmsg_eagain);
|
||||||
|
@ -396,16 +405,20 @@ srs_error_t SrsHybridServer::notify(int event, srs_utime_t interval, srs_utime_t
|
||||||
snprintf(buf, sizeof(buf), ", msg=%d,%d,%d,%d,%d,%d", _srs_pps_recvmsg->r10s(), _srs_pps_recvmsg_eagain->r10s(), _srs_pps_sendmsg->r10s(), _srs_pps_sendmsg_eagain->r10s(), _srs_pps_sendmmsg->r10s(), _srs_pps_sendmmsg_eagain->r10s());
|
snprintf(buf, sizeof(buf), ", msg=%d,%d,%d,%d,%d,%d", _srs_pps_recvmsg->r10s(), _srs_pps_recvmsg_eagain->r10s(), _srs_pps_sendmsg->r10s(), _srs_pps_sendmsg_eagain->r10s(), _srs_pps_sendmmsg->r10s(), _srs_pps_sendmmsg_eagain->r10s());
|
||||||
msg_desc = buf;
|
msg_desc = buf;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
string epoll_desc;
|
string epoll_desc;
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
_srs_pps_epoll->update(_st_stat_epoll); _srs_pps_epoll_zero->update(_st_stat_epoll_zero);
|
_srs_pps_epoll->update(_st_stat_epoll); _srs_pps_epoll_zero->update(_st_stat_epoll_zero);
|
||||||
_srs_pps_epoll_shake->update(_st_stat_epoll_shake); _srs_pps_epoll_spin->update(_st_stat_epoll_spin);
|
_srs_pps_epoll_shake->update(_st_stat_epoll_shake); _srs_pps_epoll_spin->update(_st_stat_epoll_spin);
|
||||||
if (_srs_pps_epoll->r10s() || _srs_pps_epoll_zero->r10s() || _srs_pps_epoll_shake->r10s() || _srs_pps_epoll_spin->r10s()) {
|
if (_srs_pps_epoll->r10s() || _srs_pps_epoll_zero->r10s() || _srs_pps_epoll_shake->r10s() || _srs_pps_epoll_spin->r10s()) {
|
||||||
snprintf(buf, sizeof(buf), ", epoll=%d,%d,%d,%d", _srs_pps_epoll->r10s(), _srs_pps_epoll_zero->r10s(), _srs_pps_epoll_shake->r10s(), _srs_pps_epoll_spin->r10s());
|
snprintf(buf, sizeof(buf), ", epoll=%d,%d,%d,%d", _srs_pps_epoll->r10s(), _srs_pps_epoll_zero->r10s(), _srs_pps_epoll_shake->r10s(), _srs_pps_epoll_spin->r10s());
|
||||||
epoll_desc = buf;
|
epoll_desc = buf;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
string sched_desc;
|
string sched_desc;
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
_srs_pps_sched_160ms->update(_st_stat_sched_160ms); _srs_pps_sched_s->update(_st_stat_sched_s);
|
_srs_pps_sched_160ms->update(_st_stat_sched_160ms); _srs_pps_sched_s->update(_st_stat_sched_s);
|
||||||
_srs_pps_sched_15ms->update(_st_stat_sched_15ms); _srs_pps_sched_20ms->update(_st_stat_sched_20ms);
|
_srs_pps_sched_15ms->update(_st_stat_sched_15ms); _srs_pps_sched_20ms->update(_st_stat_sched_20ms);
|
||||||
_srs_pps_sched_25ms->update(_st_stat_sched_25ms); _srs_pps_sched_30ms->update(_st_stat_sched_30ms);
|
_srs_pps_sched_25ms->update(_st_stat_sched_25ms); _srs_pps_sched_30ms->update(_st_stat_sched_30ms);
|
||||||
|
@ -415,6 +428,7 @@ srs_error_t SrsHybridServer::notify(int event, srs_utime_t interval, srs_utime_t
|
||||||
snprintf(buf, sizeof(buf), ", sched=%d,%d,%d,%d,%d,%d,%d,%d,%d", _srs_pps_sched_15ms->r10s(), _srs_pps_sched_20ms->r10s(), _srs_pps_sched_25ms->r10s(), _srs_pps_sched_30ms->r10s(), _srs_pps_sched_35ms->r10s(), _srs_pps_sched_40ms->r10s(), _srs_pps_sched_80ms->r10s(), _srs_pps_sched_160ms->r10s(), _srs_pps_sched_s->r10s());
|
snprintf(buf, sizeof(buf), ", sched=%d,%d,%d,%d,%d,%d,%d,%d,%d", _srs_pps_sched_15ms->r10s(), _srs_pps_sched_20ms->r10s(), _srs_pps_sched_25ms->r10s(), _srs_pps_sched_30ms->r10s(), _srs_pps_sched_35ms->r10s(), _srs_pps_sched_40ms->r10s(), _srs_pps_sched_80ms->r10s(), _srs_pps_sched_160ms->r10s(), _srs_pps_sched_s->r10s());
|
||||||
sched_desc = buf;
|
sched_desc = buf;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
string clock_desc;
|
string clock_desc;
|
||||||
_srs_pps_clock_15ms->update(); _srs_pps_clock_20ms->update();
|
_srs_pps_clock_15ms->update(); _srs_pps_clock_20ms->update();
|
||||||
|
@ -428,12 +442,14 @@ srs_error_t SrsHybridServer::notify(int event, srs_utime_t interval, srs_utime_t
|
||||||
}
|
}
|
||||||
|
|
||||||
string thread_desc;
|
string thread_desc;
|
||||||
|
#if defined(SRS_DEBUG) && defined(SRS_DEBUG_STATS)
|
||||||
_srs_pps_thread_run->update(_st_stat_thread_run); _srs_pps_thread_idle->update(_st_stat_thread_idle);
|
_srs_pps_thread_run->update(_st_stat_thread_run); _srs_pps_thread_idle->update(_st_stat_thread_idle);
|
||||||
_srs_pps_thread_yield->update(_st_stat_thread_yield); _srs_pps_thread_yield2->update(_st_stat_thread_yield2);
|
_srs_pps_thread_yield->update(_st_stat_thread_yield); _srs_pps_thread_yield2->update(_st_stat_thread_yield2);
|
||||||
if (_st_active_count > 0 || _srs_pps_thread_run->r10s() || _srs_pps_thread_idle->r10s() || _srs_pps_thread_yield->r10s() || _srs_pps_thread_yield2->r10s()) {
|
if (_st_active_count > 0 || _srs_pps_thread_run->r10s() || _srs_pps_thread_idle->r10s() || _srs_pps_thread_yield->r10s() || _srs_pps_thread_yield2->r10s()) {
|
||||||
snprintf(buf, sizeof(buf), ", co=%d,%d,%d, yield=%d,%d", _st_active_count, _srs_pps_thread_run->r10s(), _srs_pps_thread_idle->r10s(), _srs_pps_thread_yield->r10s(), _srs_pps_thread_yield2->r10s());
|
snprintf(buf, sizeof(buf), ", co=%d,%d,%d, yield=%d,%d", _st_active_count, _srs_pps_thread_run->r10s(), _srs_pps_thread_idle->r10s(), _srs_pps_thread_yield->r10s(), _srs_pps_thread_yield2->r10s());
|
||||||
thread_desc = buf;
|
thread_desc = buf;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
srs_trace("Hybrid cpu=%.2f%%,%dMB%s%s%s%s%s%s%s%s%s%s",
|
srs_trace("Hybrid cpu=%.2f%%,%dMB%s%s%s%s%s%s%s%s%s%s",
|
||||||
u->percent * 100, memory,
|
u->percent * 100, memory,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue