提交 2c634eee 编写于 作者: A Alexander Alekhin

Merge pull request #19023 from alalek:core_update_allocator_stats_type

...@@ -82,16 +82,24 @@ option(OPENCV_ENABLE_ALLOCATOR_STATS "Enable Allocator metrics" ON) ...@@ -82,16 +82,24 @@ option(OPENCV_ENABLE_ALLOCATOR_STATS "Enable Allocator metrics" ON)
if(NOT OPENCV_ENABLE_ALLOCATOR_STATS) if(NOT OPENCV_ENABLE_ALLOCATOR_STATS)
add_definitions(-DOPENCV_DISABLE_ALLOCATOR_STATS=1) add_definitions(-DOPENCV_DISABLE_ALLOCATOR_STATS=1)
else() elseif(HAVE_CXX11 OR DEFINED OPENCV_ALLOCATOR_STATS_COUNTER_TYPE)
if(NOT DEFINED OPENCV_ALLOCATOR_STATS_COUNTER_TYPE) if(NOT DEFINED OPENCV_ALLOCATOR_STATS_COUNTER_TYPE)
if(HAVE_ATOMIC_LONG_LONG AND OPENCV_ENABLE_ATOMIC_LONG_LONG) if(HAVE_ATOMIC_LONG_LONG AND OPENCV_ENABLE_ATOMIC_LONG_LONG)
set(OPENCV_ALLOCATOR_STATS_COUNTER_TYPE "long long") if(MINGW)
# command-line generation issue due to space in value, int/int64_t should be used instead
# https://github.com/opencv/opencv/issues/16990
message(STATUS "Consider adding OPENCV_ALLOCATOR_STATS_COUNTER_TYPE=int/int64_t according to your build configuration")
else()
set(OPENCV_ALLOCATOR_STATS_COUNTER_TYPE "long long")
endif()
else() else()
set(OPENCV_ALLOCATOR_STATS_COUNTER_TYPE "int") set(OPENCV_ALLOCATOR_STATS_COUNTER_TYPE "int")
endif() endif()
endif() endif()
message(STATUS "Allocator metrics storage type: '${OPENCV_ALLOCATOR_STATS_COUNTER_TYPE}'") if(DEFINED OPENCV_ALLOCATOR_STATS_COUNTER_TYPE)
add_definitions("-DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=${OPENCV_ALLOCATOR_STATS_COUNTER_TYPE}") message(STATUS "Allocator metrics storage type: '${OPENCV_ALLOCATOR_STATS_COUNTER_TYPE}'")
add_definitions("-DOPENCV_ALLOCATOR_STATS_COUNTER_TYPE=${OPENCV_ALLOCATOR_STATS_COUNTER_TYPE}")
endif()
endif() endif()
......
...@@ -7,13 +7,11 @@ ...@@ -7,13 +7,11 @@
#include "./allocator_stats.hpp" #include "./allocator_stats.hpp"
#ifdef CV_CXX11
#include <atomic>
#endif
//#define OPENCV_DISABLE_ALLOCATOR_STATS //#define OPENCV_DISABLE_ALLOCATOR_STATS
namespace cv { namespace utils { #ifdef CV_CXX11
#include <atomic>
#ifndef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE #ifndef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE
#if defined(__GNUC__) && (\ #if defined(__GNUC__) && (\
...@@ -28,6 +26,16 @@ namespace cv { namespace utils { ...@@ -28,6 +26,16 @@ namespace cv { namespace utils {
#define OPENCV_ALLOCATOR_STATS_COUNTER_TYPE long long #define OPENCV_ALLOCATOR_STATS_COUNTER_TYPE long long
#endif #endif
#else // CV_CXX11
#ifndef OPENCV_ALLOCATOR_STATS_COUNTER_TYPE
#define OPENCV_ALLOCATOR_STATS_COUNTER_TYPE int // CV_XADD supports int only
#endif
#endif // CV_CXX11
namespace cv { namespace utils {
#ifdef CV__ALLOCATOR_STATS_LOG #ifdef CV__ALLOCATOR_STATS_LOG
namespace { namespace {
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册