Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
spdlog
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
spdlog
Commits
2132fe0e
Commit
2132fe0e
authored
May 04, 2016
by
Kevin M. Godby
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial work on benchmarks of other logging systems.
parent
846fdf9f
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
123 additions
and
6 deletions
+123
-6
.gitmodules
.gitmodules
+9
-0
CMakeLists.txt
CMakeLists.txt
+6
-0
bench/CMakeLists.txt
bench/CMakeLists.txt
+78
-0
bench/easylogging-bench-mt.cpp
bench/easylogging-bench-mt.cpp
+1
-1
bench/easylogging-bench.cpp
bench/easylogging-bench.cpp
+1
-1
bench/zf_log-bench-mt.cpp
bench/zf_log-bench-mt.cpp
+2
-2
bench/zf_log-bench.cpp
bench/zf_log-bench.cpp
+2
-2
vendor/CMakeLists.txt
vendor/CMakeLists.txt
+21
-0
vendor/easyloggingpp
vendor/easyloggingpp
+1
-0
vendor/glog
vendor/glog
+1
-0
vendor/zf_log
vendor/zf_log
+1
-0
No files found.
.gitmodules
0 → 100644
View file @
2132fe0e
[submodule "vendor/zf_log"]
path = vendor/zf_log
url = https://github.com/wonder-mice/zf_log.git
[submodule "vendor/glog"]
path = vendor/glog
url = https://github.com/google/glog.git
[submodule "vendor/easyloggingpp"]
path = vendor/easyloggingpp
url = https://github.com/easylogging/easyloggingpp.git
CMakeLists.txt
View file @
2132fe0e
...
...
@@ -13,6 +13,7 @@ add_library(spdlog INTERFACE)
option
(
SPDLOG_BUILD_EXAMPLES
"Build examples"
OFF
)
option
(
SPDLOG_BUILD_TESTS
"Build tests"
OFF
)
option
(
SPDLOG_BUILD_BENCHMARKS
"Build comparison benchmarks for various logging libraries"
OFF
)
target_include_directories
(
spdlog
...
...
@@ -32,6 +33,11 @@ if(SPDLOG_BUILD_TESTS)
add_subdirectory
(
tests
)
endif
()
if
(
SPDLOG_BUILD_BENCHMARKS
)
add_subdirectory
(
vendor
)
add_subdirectory
(
bench
)
endif
()
### Install ###
# * https://github.com/forexample/package-example
set
(
generated_dir
"
${
CMAKE_CURRENT_BINARY_DIR
}
/generated"
)
...
...
bench/CMakeLists.txt
0 → 100644
View file @
2132fe0e
#
# Benchmarks against various logging systems
#
#
# Dependencies
#
find_package
(
Threads
)
enable_testing
()
# Helper function for building benchmark programs
function
(
add_benchmark _target
)
set
(
options
""
)
# no options
set
(
singleValueArgs
""
)
# no single-value arguments
set
(
multiValueArgs LIBS SOURCES INCLUDES DEFINITIONS
)
# lists of additional libraries, source files, and include directories
cmake_parse_arguments
(
_benchmark
"
${
options
}
"
"
${
singleValueArgs
}
"
"
${
multiValueArgs
}
"
${
ARGN
}
)
add_executable
(
${
_target
}
${
_target
}
.cpp
${
_benchmark_SOURCES
}
)
target_include_directories
(
${
_target
}
PUBLIC
${
HEADER_BASE
}
${
_benchmark_INCLUDES
}
)
target_link_libraries
(
${
_target
}
${
CMAKE_THREAD_LIBS_INIT
}
${
_benchmark_LIBS
}
)
if
(
_benchmark_DEFINITIONS
)
target_compile_definitions
(
${
_target
}
${
_benchmark_DEFINITIONS
}
)
endif
()
add_test
(
NAME test_benchmark_
${
_target
}
COMMAND
${
_target
}
)
endfunction
()
# Benchmark programs
add_benchmark
(
spdlog-bench
)
add_benchmark
(
spdlog-bench-mt
)
add_benchmark
(
spdlog-async
)
if
(
TARGET zf_log
)
add_benchmark
(
zf_log-bench LIBS zf_log
)
add_benchmark
(
zf_log-bench-mt LIBS zf_log
)
endif
()
find_package
(
Boost QUIET COMPONENTS log
)
if
(
Boost_FOUND
)
add_benchmark
(
boost-bench LIBS
${
Boost_LIBRARIES
}
INCLUDES
${
Boost_INCLUDE_DIRS
}
)
add_benchmark
(
boost-bench-mt LIBS
${
Boost_LIBRARIES
}
INCLUDES
${
Boost_INCLUDE_DIRS
}
)
endif
()
find_package
(
glog QUIET
)
if
(
TARGET glog
)
add_benchmark
(
glog-bench LIBS glog
)
add_benchmark
(
glog-bench-mt LIBS glog
)
endif
()
# TODO make g2log find script
# TODO use g2log git submodule
find_package
(
g2log QUIET
)
if
(
g2log-FOUND
)
set
(
G2LOG_LIBRARIES lib_g2logger
)
set
(
G2LOG_INCLUDE_DIRS /home/gabi/devel/g2log/g2log/src
)
add_benchmark
(
g2log-async LIBS
${
G2LOG_LIBRARIES
}
INCLUDES
${
G2LOG_INCLUDE_DIRS
}
)
endif
()
if
(
TARGET easylogging
)
add_benchmark
(
easylogging-bench LIBS easylogging
)
add_benchmark
(
easylogging-bench-mt LIBS easylogging
)
endif
()
file
(
MAKE_DIRECTORY
"
${
CMAKE_CURRENT_BINARY_DIR
}
/logs"
)
bench/easylogging-bench-mt.cpp
View file @
2132fe0e
...
...
@@ -9,7 +9,7 @@
#define _ELPP_THREAD_SAFE
#include "easylogging++.h"
_
INITIALIZE_EASYLOGGINGPP
INITIALIZE_EASYLOGGINGPP
using
namespace
std
;
...
...
bench/easylogging-bench.cpp
View file @
2132fe0e
...
...
@@ -6,7 +6,7 @@
#include "easylogging++.h"
_
INITIALIZE_EASYLOGGINGPP
INITIALIZE_EASYLOGGINGPP
int
main
(
int
,
char
*
[])
{
...
...
bench/zf_log-bench-mt.cpp
View file @
2132fe0e
...
...
@@ -9,7 +9,7 @@
const
char
g_path
[]
=
"logs/zf_log.txt"
;
int
g_fd
;
static
void
output_callback
(
zf_log_message
*
ms
g
)
static
void
output_callback
(
const
zf_log_message
*
msg
,
void
*
ar
g
)
{
*
msg
->
p
=
'\n'
;
write
(
g_fd
,
msg
->
buf
,
msg
->
p
-
msg
->
buf
+
1
);
...
...
@@ -25,7 +25,7 @@ int main(int argc, char* argv[])
ZF_LOGE_AUX
(
ZF_LOG_STDERR
,
"Failed to open log file: %s"
,
g_path
);
return
-
1
;
}
zf_log_set_output_callback
(
ZF_LOG_PUT_STD
,
output_callback
)
;
ZF_LOG_DEFINE_GLOBAL_OUTPUT
=
{
ZF_LOG_PUT_STD
,
nullptr
,
&
output_callback
}
;
int
thread_count
=
10
;
if
(
argc
>
1
)
...
...
bench/zf_log-bench.cpp
View file @
2132fe0e
...
...
@@ -4,7 +4,7 @@
const
char
g_path
[]
=
"logs/zf_log.txt"
;
static
FILE
*
g_f
;
static
void
output_callback
(
zf_log_message
*
ms
g
)
static
void
output_callback
(
const
zf_log_message
*
msg
,
void
*
ar
g
)
{
*
msg
->
p
=
'\n'
;
fwrite
(
msg
->
buf
,
msg
->
p
-
msg
->
buf
+
1
,
1
,
g_f
);
...
...
@@ -18,7 +18,7 @@ int main(int, char* [])
ZF_LOGE_AUX
(
ZF_LOG_STDERR
,
"Failed to open log file: %s"
,
g_path
);
return
-
1
;
}
zf_log_set_output_callback
(
ZF_LOG_PUT_STD
,
output_callback
)
;
ZF_LOG_DEFINE_GLOBAL_OUTPUT
=
{
ZF_LOG_PUT_STD
,
nullptr
,
&
output_callback
}
;
const
int
howmany
=
1000000
;
for
(
int
i
=
0
;
i
<
howmany
;
++
i
)
...
...
vendor/CMakeLists.txt
0 → 100644
View file @
2132fe0e
#
# External libraries
#
#
# Most of these libraries are used for running comparison benchmarks against
# other logging libraries.
add_subdirectory
(
zf_log
)
#add_subdirectory(glog)
add_library
(
easylogging INTERFACE
)
set
(
SPDLOG_VENDORED_EASYLOGGING_ROOT
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/easyloggingpp"
CACHE INTERNAL
""
FORCE
)
target_include_directories
(
easylogging INTERFACE
"
${
SPDLOG_VENDORED_EASYLOGGING_ROOT
}
/src"
)
#add_library(zflog INTERFACE)
#set(SPDLOG_VENDORED_ZFLOG_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/zf_log" CACHE INTERNAL "" FORCE)
#target_include_directories(zflog INTERFACE "${SPDLOG_VENDORED_ZFLOG_ROOT}/zf_log")
##target_compile_definitions(zflog INTERFACE ZFLOG_DEFINITIONS)
easyloggingpp
@
f926802d
Subproject commit f926802dfbde716d82b64b8ef3c25b7f0fcfec65
glog
@
de6149ef
Subproject commit de6149ef8e67b064a433a8b88924fa9f606ad5d5
zf_log
@
4c15e670
Subproject commit 4c15e6704edffdafe289d4b84c2db89009368626
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment