Browse Source

Drogon: use mimalloc as memory allocator (#5656)

An Tao 5 years ago
parent
commit
10224e95e0

+ 12 - 0
frameworks/C++/drogon/drogon-core.dockerfile

@@ -26,6 +26,7 @@ ENV RANLIB=gcc-ranlib-8
 
 ENV IROOT=/install
 ENV DROGON_ROOT=$IROOT/drogon
+ENV MIMALLOC_ROOT=$IROOT/mimalloc
 ENV PG_ROOT=$IROOT/postgres-batch_mode_ubuntu
 ENV TEST_PATH=/drogon_benchmark/build
 
@@ -53,6 +54,17 @@ WORKDIR $DROGON_ROOT/build
 RUN cmake -DCMAKE_BUILD_TYPE=release ..
 RUN make && make install
 
+WORKDIR $IROOT
+
+RUN git clone https://github.com/microsoft/mimalloc
+
+WORKDIR $MIMALLOC_ROOT
+RUN git checkout v1.6.2 -b v1.6.2
+RUN mkdir -p out/release
+WORKDIR $MIMALLOC_ROOT/out/release
+RUN cmake ../..
+RUN make && make install
+
 WORKDIR $TEST_PATH
 
 RUN cmake -DCMAKE_BUILD_TYPE=release ..

+ 12 - 0
frameworks/C++/drogon/drogon.dockerfile

@@ -26,6 +26,7 @@ ENV RANLIB=gcc-ranlib-8
 
 ENV IROOT=/install
 ENV DROGON_ROOT=$IROOT/drogon
+ENV MIMALLOC_ROOT=$IROOT/mimalloc
 ENV PG_ROOT=$IROOT/postgres-batch_mode_ubuntu
 ENV TEST_PATH=/drogon_benchmark/build
 
@@ -53,6 +54,17 @@ WORKDIR $DROGON_ROOT/build
 RUN cmake -DCMAKE_BUILD_TYPE=release ..
 RUN make && make install
 
+WORKDIR $IROOT
+
+RUN git clone https://github.com/microsoft/mimalloc
+
+WORKDIR $MIMALLOC_ROOT
+RUN git checkout v1.6.2 -b v1.6.2
+RUN mkdir -p out/release
+WORKDIR $MIMALLOC_ROOT/out/release
+RUN cmake ../..
+RUN make && make install
+
 WORKDIR $TEST_PATH
 
 RUN cmake -DCMAKE_BUILD_TYPE=release ..

+ 2 - 1
frameworks/C++/drogon/drogon_benchmark/CMakeLists.txt

@@ -38,7 +38,8 @@ endforeach()
 
 add_executable(${PROJECT_NAME} ${BENCHMARK_SOURCES})
 find_package(Drogon REQUIRED)
-target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon)
+find_package(mimalloc 1.0 REQUIRED)
+target_link_libraries(${PROJECT_NAME} PRIVATE Drogon::Drogon mimalloc-static)
 
 target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})