mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
refine code, support configure to enable --memory-watch
This commit is contained in:
parent
0d6a574216
commit
0d66e92ab5
8 changed files with 22 additions and 17 deletions
|
@ -136,6 +136,12 @@ else
|
|||
echo "#undef SRS_AUTO_SSL" >> $SRS_AUTO_HEADERS_H
|
||||
fi
|
||||
|
||||
if [ $SRS_MEM_WATCH = YES ]; then
|
||||
echo "#define SRS_AUTO_MEM_WATCH" >> $SRS_AUTO_HEADERS_H
|
||||
else
|
||||
echo "#undef SRS_AUTO_MEM_WATCH" >> $SRS_AUTO_HEADERS_H
|
||||
fi
|
||||
|
||||
# whether compile ffmpeg tool
|
||||
if [ $SRS_FFMPEG_TOOL = YES ]; then
|
||||
echo "#define SRS_AUTO_FFMPEG_TOOL" >> $SRS_AUTO_HEADERS_H
|
||||
|
|
|
@ -60,6 +60,9 @@ SRS_LOG_TRACE=RESERVED
|
|||
# experts
|
||||
# donot compile ssl, use system ssl(-lssl) if required.
|
||||
SRS_USE_SYS_SSL=NO
|
||||
# enable memory watch, detect memory leak,
|
||||
# similar to gmc, should disable in release version for hurts performance.
|
||||
SRS_MEM_WATCH=NO
|
||||
# export the srs-librtmp to specified project, NO to disable it.
|
||||
SRS_EXPORT_LIBRTMP_PROJECT=NO
|
||||
# export the srs-librtmp to a single .h and .c, NO to disable it.
|
||||
|
@ -195,6 +198,7 @@ Conflicts:
|
|||
|
||||
Experts:
|
||||
--use-sys-ssl donot compile ssl, use system ssl(-lssl) if required.
|
||||
--memory-watch enable memory watch to detect memory leaking(hurts performance).
|
||||
--export-librtmp-project=<path> export srs-librtmp to specified project in path.
|
||||
--export-librtmp-single=<path> export srs-librtmp to a single file(.h+.cpp) in path.
|
||||
|
||||
|
@ -283,6 +287,7 @@ function parse_user_option() {
|
|||
--full) SRS_ENABLE_ALL=YES ;;
|
||||
|
||||
--use-sys-ssl) SRS_USE_SYS_SSL=YES ;;
|
||||
--memory-watch) SRS_MEM_WATCH=YES ;;
|
||||
--export-librtmp-project) SRS_EXPORT_LIBRTMP_PROJECT=${value} ;;
|
||||
--export-librtmp-single) SRS_EXPORT_LIBRTMP_SINGLE=${value} ;;
|
||||
|
||||
|
|
|
@ -569,7 +569,7 @@ void SrsServer::dispose()
|
|||
st_usleep(100 * 1000);
|
||||
}
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_report();
|
||||
#endif
|
||||
}
|
||||
|
@ -893,7 +893,7 @@ void SrsServer::on_signal(int signo)
|
|||
signal_gmc_stop = true;
|
||||
#else
|
||||
srs_trace("user terminate program");
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_report();
|
||||
#endif
|
||||
exit(0);
|
||||
|
|
|
@ -23,7 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#include <srs_core_mem_watch.hpp>
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
|
||||
#include <map>
|
||||
#include <stdio.h>
|
||||
|
@ -68,7 +68,7 @@ void srs_memory_unwatch(void* ptr)
|
|||
|
||||
void srs_memory_report()
|
||||
{
|
||||
printf("srs memory leak report:\n");
|
||||
printf("srs memory watch leak report:\n");
|
||||
|
||||
int total = 0;
|
||||
std::map<void*, SrsMemoryObject*>::iterator it;
|
||||
|
@ -79,6 +79,7 @@ void srs_memory_report()
|
|||
}
|
||||
|
||||
printf("%d objects leak %dKB.\n", (int)_srs_ptrs.size(), total / 1024);
|
||||
printf("@remark use script to cleanup for memory watch: ./etc/init.d/srs stop\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,7 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#include <srs_core.hpp>
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
|
||||
#include <string>
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
* to force the server to send smaller tcp packet.
|
||||
* @see https://github.com/simple-rtmp-server/srs/issues/320
|
||||
* @remark undef it to auto calc it by merged write sleep ms.
|
||||
* @remark only apply it when SRS_PERF_MW_SO_RCVBUF is defined.
|
||||
* @remark only apply it when SRS_PERF_MW_SO_SNDBUF is defined.
|
||||
*/
|
||||
#ifdef SRS_PERF_MW_SO_SNDBUF
|
||||
//#define SRS_PERF_SO_SNDBUF_SIZE 1024
|
||||
|
@ -188,12 +188,5 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#undef SRS_PERF_FAST_FLV_ENCODER
|
||||
#define SRS_PERF_FAST_FLV_ENCODER
|
||||
|
||||
/**
|
||||
* whether enable the special memory watcher.
|
||||
* which used for memory leak debug and hurts performance.
|
||||
*/
|
||||
#define SRS_MEM_WATCH
|
||||
#undef SRS_MEM_WATCH
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ SrsCommonMessage::SrsCommonMessage()
|
|||
|
||||
SrsCommonMessage::~SrsCommonMessage()
|
||||
{
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_unwatch(payload);
|
||||
#endif
|
||||
srs_freep(payload);
|
||||
|
@ -173,7 +173,7 @@ void SrsCommonMessage::create_payload(int size)
|
|||
payload = new char[size];
|
||||
srs_verbose("create payload for RTMP message. size=%d", size);
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_watch(payload, "RTMP.msg.payload", size);
|
||||
#endif
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload()
|
|||
|
||||
SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
|
||||
{
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
srs_memory_unwatch(payload);
|
||||
#endif
|
||||
srs_freep(payload);
|
||||
|
|
|
@ -212,7 +212,7 @@ void check_macro_features()
|
|||
srs_warn("SRS %s is not stable, please use stable branch %s instead", RTMP_SIG_SRS_VERSION, VERSION_STABLE_BRANCH);
|
||||
#endif
|
||||
|
||||
#ifdef SRS_MEM_WATCH
|
||||
#ifdef SRS_AUTO_MEM_WATCH
|
||||
#warning "srs memory watcher will hurts performance. user should kill by SIGTERM or init.d script."
|
||||
srs_warn("srs memory watcher will hurts performance. user should kill by SIGTERM or init.d script.");
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue