Skip to content

Commit

Permalink
add jomt
Browse files Browse the repository at this point in the history
  • Loading branch information
archibate committed Jan 4, 2023
1 parent d1c588f commit 9133676
Show file tree
Hide file tree
Showing 44 changed files with 14,703 additions and 1 deletion.
1 change: 1 addition & 0 deletions specifelse/benchtest/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
jomtSettings/
2 changes: 1 addition & 1 deletion specifelse/benchtest/.tasks
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[+]
build_type=Release
build_target=demo0
run_args=--benchmark_out=build/$(VIM:build_target).json
run_target="$(VIM:build_dir)/$(VIM:build_target)" --benchmark_out="$(VIM:build_dir)/$(VIM:build_target).json"
35 changes: 35 additions & 0 deletions specifelse/benchtest/jomt/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Misc
CMakeLists.txt.user
4 changes: 4 additions & 0 deletions specifelse/benchtest/jomt/.tasks
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[+]
build_type=Release
build_target=JOMT
run_target="$(VIM:build_dir)/src/$(VIM:build_target)"
23 changes: 23 additions & 0 deletions specifelse/benchtest/jomt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
cmake_minimum_required(VERSION 3.5)

project(JOMT LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if (MSVC)
add_compile_options(/W3)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2 /DNDEBUG /DQT_NO_DEBUG_OUTPUT")
else()
add_compile_options(-Wall -Wextra -pedantic)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG -DQT_NO_DEBUG_OUTPUT -march=native -mtune=native")
endif()

# Build the target
add_subdirectory(src)
674 changes: 674 additions & 0 deletions specifelse/benchtest/jomt/LICENSE

Large diffs are not rendered by default.

57 changes: 57 additions & 0 deletions specifelse/benchtest/jomt/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
Benchmark visualizer cloned from https://github.com/gaujay/jomt by @archibate.

# JOMT

Visualization tool for Google benchmark results.

Built upon Qt5 Charts and DataVisualization modules.

### Features

- Parse Google benchmark results as json files
- Support old naming format and aggregate data (min, median, mean, stddev/cv)
- Multiple 2D and 3D chart types
- Benchmarks and axes selection
- Plotting options (theme, ranges, logarithm, labels, units, ...)
- Auto-reload and preferences saving

### Command line

Direct chart plotting with parameters is available through command line options.

```
Options:
-?, -h, --help Displays this help.
-v, --version Displays version information.
--ct, --chart-type <chart_type> Chart type (e.g. Lines, Boxes, 3DBars)
--cx, --chart-x <chart_x> Chart X-axis (e.g. a1, t2)
--cy, --chart-y <chart_y> Chart Y-axis (e.g. CPUTime, Bytes,
RealMeanTime, ItemsMin)
--cz, --chart-z <chart_z> Chart Z-axis (e.g. auto, a2, t1)
--ap, --append <files...> Files to append by renaming (uses ';' as
separator)
--ow, --overwrite <files...> Files to append by overwriting (uses ';' as
separator)
Arguments:
file Benchmark results file in json to parse.
```

### Building

Supports GCC/MinGW and MSVC builds through CMake.

You may need to install Qt dev libraries, if not already available.
See : https://doc.qt.io/qt-5/gettingstarted.html#installing-qt

Then just open 'CMakeLists.txt' with a compatible IDE (like QtCreator) or use command line:

$ cd jomt
$ mkdir build
$ cd build
$ cmake ..
$ make <target> -j

### License

As the Qt modules it uses, this application is licensed under *GNU GPL-3.0-or-later*.
58 changes: 58 additions & 0 deletions specifelse/benchtest/jomt/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@

find_package(Qt5 COMPONENTS Widgets Charts DataVisualization REQUIRED)

# Files
set(HEADERS
include/mainwindow.h
include/benchmark_results.h
include/result_parser.h
include/plot_parameters.h
include/commandline_handler.h
include/result_selector.h
include/plotter_linechart.h
include/plotter_barchart.h
include/plotter_boxchart.h
include/plotter_3dbars.h
include/plotter_3dsurface.h
include/series_dialog.h
)
set(SOURCES
main.cpp
mainwindow.cpp
benchmark_results.cpp
result_parser.cpp
plot_parameters.cpp
commandline_handler.cpp
result_selector.cpp
plotter_linechart.cpp
plotter_barchart.cpp
plotter_boxchart.cpp
plotter_3dbars.cpp
plotter_3dsurface.cpp
series_dialog.cpp
)
set(FORMS
ui/mainwindow.ui
ui/result_selector.ui
ui/plotter_linechart.ui
ui/plotter_barchart.ui
ui/plotter_boxchart.ui
ui/plotter_3dbars.ui
ui/plotter_3dsurface.ui
ui/series_dialog.ui
)
set(RESOURCES
resource/resource.qrc
)
set(CMAKE_AUTOUIC_SEARCH_PATHS ui)

# Target
add_executable(JOMT
${HEADERS}
${SOURCES}
${FORMS}
${RESOURCES}
)
target_include_directories(JOMT PRIVATE include)

target_link_libraries(JOMT PRIVATE Qt5::Widgets Qt5::Charts Qt5::DataVisualization)
Loading

0 comments on commit 9133676

Please sign in to comment.