0
0
mirror of https://github.com/yse/easy_profiler.git synced 2024-12-28 01:04:41 +08:00

200 Commits

Author SHA1 Message Date
Mika Rautio
e5fd86f9c8 Add support for building with Apple LLVM clang version < 8.0 (#82)
* Add support for building with pre 2016 Apple LLVM clang

* Automatically detect Apple clang that do not support thread_local

* Clarify clang thread_local support code comment
2017-11-20 20:23:15 +03:00
Victor Zarubkin
b3fd7c7837 #31 Single arbitrary values can be displayed in GUI as events + value converted to text 2017-11-15 21:43:52 +03:00
Victor Zarubkin
e0190fe7a3 #0 Windows build 2017-11-09 23:56:46 +03:00
Victor Zarubkin
bdb9e546b3 #0 [Core] Windows build 2017-11-09 23:43:12 +03:00
Victor Zarubkin
342aba8e77 #0 [Core] refactoring 2017-11-09 23:39:04 +03:00
Victor Zarubkin
ae4c6c4e9f #0 [Core][GUI] refactoring 2017-11-09 23:34:17 +03:00
Victor Zarubkin
530eb2446c #0 [Core] A lot of code refactoring 2017-11-09 23:12:54 +03:00
Victor Zarubkin
c2de745445 #0 [Core] Rearranged include files 2017-11-09 22:01:32 +03:00
Victor Zarubkin
8509b9b01b Merge branch 'origin/develop' into issue31_arbitrary_values 2017-11-08 21:50:25 +03:00
Victor Zarubkin
eef1dab923 #31 [Core] further work on arbitrary values 2017-11-08 21:38:07 +03:00
Victor Zarubkin
a0ab6a9000 #0 [Core] Added constexpr support macros and refactored extract_... functions 2017-11-08 21:34:51 +03:00
Sebastian Bischlager
23cf75fea4 Fixed #72 Where building x86 binaries with VS 2017 resulted in an internal compiler error 2017-11-06 18:00:37 +01:00
Sergey Yagovtsev
6db3cafdce fix #76 2017-11-05 12:27:43 +03:00
Victor Zarubkin
b812e1648c #75 Windows build
(cherry picked from commit ec720bfb253b71fa612b4b897e06d61929510f44)
2017-11-03 22:38:57 +03:00
Victor Zarubkin
ec720bfb25 #75 Windows build 2017-11-03 22:36:43 +03:00
Victor Zarubkin
52f3823b57 Merge branch 'origin/develop' into issue31_arbitrary_values 2017-11-02 22:49:12 +03:00
Victor Zarubkin
4bf796cb7a #75 [GUI] ui is not freezed now when you hit Cancel button while profiled blocks are prepared to be sent 2017-11-02 22:43:37 +03:00
Blake Martin
60e48d5a06 Added #include <malloc.h> to fix EASY_ENABLE_ALIGNMENT build error 2017-10-23 12:47:40 -05:00
Victor Zarubkin
cac628ce82 #31 added arbitrary value id 2017-10-21 01:57:48 +03:00
Victor Zarubkin
e9e937551e #31 build fix 2017-10-21 00:55:17 +03:00
Victor Zarubkin
86f7a48995 #31 intermediate commit: added basic API for arbitrary values profiling. Still not working. 2017-10-20 22:18:32 +03:00
Sergey Yagovtsev
74ee7bd92e add profiler_public_types.h for install 2017-10-12 22:40:18 +03:00
Victor Zarubkin
65bfb94276 #0 [Core] Refactoring: moved all types from profiler.h to separate file 2017-10-05 20:53:41 +03:00
Victor Zarubkin
1f8cc6346c #0 [Core] Suppress warning for unused variable 2017-10-04 22:46:13 +03:00
Victor Zarubkin
5e2d8e3be6 #0 [Core] Added alias for isEnabled, setEnabled functions and macros 2017-10-04 21:40:23 +03:00
Victor Zarubkin
2e85a7b6f4 #0 [GUI] fixed bug with missing empty threads on diagram 2017-10-04 21:37:11 +03:00
Victor Zarubkin
d915a8d506 #0 gcc build fix 2017-09-30 20:57:22 +03:00
Victor Zarubkin
d5f2ef0c6c #0 Build fix + reduced number of thread-local variables 2017-09-30 20:45:06 +03:00
Victor Zarubkin
000888f4af #0 [Core] Refactoring: replaced tabs with spaces 2017-09-30 19:53:54 +03:00
Victor Zarubkin
c7b9d4f464 #0 [Core] Refactoring: moved a lot of code to different source files 2017-09-30 19:51:33 +03:00
Victor Zarubkin
e6765a03a2 #53 [Unix][Core] Correction for printing a lot of warnings only if there is no thread_local support 2017-09-30 19:02:24 +03:00
Victor Zarubkin
8e601bc52f #53 [Core] Removed debugging rows 2017-09-28 21:09:12 +03:00
Victor Zarubkin
c6ff9f3277 #0 [Core] Replacing tabs with spaces 2017-09-28 21:05:45 +03:00
Victor Zarubkin
c813ea655d #53 [Core] Fixed problem with removing ThreadStorage for alive threads. But Linux would have another problem: potential memory leak or potential crash at your choise :)) because these wonderful pthreads does not allow to check thread state :( 2017-09-28 21:04:28 +03:00
Blake Martin
8b4726371e Added a static const member variable for readability and to get rid of a warning. 2017-09-03 21:51:27 -05:00
rationalcoder
bd1f6e49a3 Removed unnecessary syntax and removed a use of constexpr that doesn't compile with MSVC 2013 (slight readability hit). 2017-08-31 19:37:21 -05:00
Blake Martin
186db6691a Removed unnecessary temporary 2017-08-23 14:06:03 -05:00
Blake Martin
d8f2663e01 Removed a type-dependent false type that is no longer used. 2017-08-22 16:31:52 -05:00
Blake Martin
88a401a280 Fixed a logic error introduced with the chunk offset + potentially sped up serialization a bit. 2017-08-22 15:10:19 -05:00
Blake Martin
01415cbdb8 Again, auto can only add to confusion here. 2017-08-22 15:07:37 -05:00
Blake Martin
15323cc8ff Fixed casting issues and fixed an order of operations error. 2017-08-22 13:29:19 -05:00
rationalcoder
283b835dd8 Scrapped the alignment macros and replaced them with force-inline template functions; still need to test thoroughly. 2017-08-19 22:10:51 -05:00
rationalcoder
75e4f35abe Added EASY_FORCE_INLINE 2017-08-19 22:08:27 -05:00
Blake Martin
12d26d6680 progress on strict alignment macros. 2017-08-17 18:35:29 -05:00
Blake Martin
423388e6b0 Updated the chunk_allocator to take the sentinel implementation detail into account + Fixed some formatting inconsistencies 2017-08-16 19:15:27 -05:00
Blake Martin
7a030bc89a Reverted some unnecessary changes and added documentation. 2017-08-16 18:38:37 -05:00
Blake Martin
6fc445ae9a got rid of the forced -O3 optimization for UNIX 2017-08-16 16:17:57 -05:00
Blake Martin
28f755e0b3 There is no point in using auto here. 2017-08-16 16:17:11 -05:00
Blake Martin
a4e43bfb8e Fixed some undefined behavior, added documentation, and changed alignment size to be more portable 2017-08-16 16:16:23 -05:00
Blake Martin
2ee5d27baf Fixed Issue #50 Undefined Behavior 2017-08-10 14:58:42 -05:00
Blake Martin
a9591f3070 Added documentation and potentially sped things up a bit. I also commented a potential bug. 2017-08-10 14:23:26 -05:00
Blake Martin
60c9f76478 Got rid of 'passing NULL to non-pointer argument' warning with MinGW 2017-08-10 14:22:28 -05:00
Sergey Yagovtsev
6f447be33d Merge pull request #58 from oliverdaniell/fix/cmake
Moved bin from the source tree to the build tree
2017-08-10 20:50:54 +04:00
Oliver Daniell
a03ec76322 set BUILD_SHARED_LIBS to ON by default. Updated comment 2017-08-10 12:22:59 +01:00
Oliver Daniell
a02cfa925a message BUILD_SHARED_LIBS directly 2017-08-10 11:24:21 +01:00
Oliver Daniell
36bade1939 Replaced custom Shared/Static lib option with the deafult cmake option 2017-08-10 09:41:31 +01:00
Liareth
b0aae2349c Added the /WX flag, which treats compiler warnings as errors in MSVC.
* This required a minor change to CMakeLists.txt.
* Also updated two occurrences in code where compilation failed due to
implicit narrowing conversions.
2017-08-09 17:53:28 +01:00
Sergey Yagovtsev
5edac7620e fix #51 2017-07-31 17:59:41 +03:00
Victor Zarubkin
39d7937397 Update copyright in resources.rc 2017-06-19 00:54:27 +03:00
Victor Zarubkin
15cdb78afb small update (comment) for easy_profiler_core/CMakeLists.txt 2017-06-19 00:53:50 +03:00
Sergey Yagovtsev
8030f3fd15 Merge pull request #47 from karimnaaji/macos
Fix mac os build
2017-06-19 00:31:13 +03:00
Sergey Yagovtsev
f7b26ac3f4 update #44: build fix 2017-06-14 11:33:17 +03:00
Sergey Yagovtsev
c2765ca94d update #44: set target public compile properties 2017-06-14 11:11:34 +03:00
Sergey Yagovtsev
83cea794de update #44: install fix. remove version.ifo from installation 2017-06-14 10:32:58 +03:00
Rokas Kupstys
941f7a4b45 Fix for static build.
Fix for c++11 on apple systems.
2017-06-13 18:57:53 +03:00
Karim Naaji
504648d613 Fix mac os build
- Work around lack of clock_gettime() on OS X
2017-06-12 11:30:01 -04:00
Rokas Kupstys
ba09dc290e Enable colors by default. It seems code does not really support turning them off at the moment. 2017-06-12 11:45:45 +03:00
Rokas Kupstys
f007152d2c CMake script rework 2017-06-12 10:36:42 +03:00
Sergey Yagovtsev
c608665e06 Remove log about client connection 2017-06-12 01:04:51 +03:00
Sergey Yagovtsev
71ffde98de fix #46 2017-06-11 19:34:28 +03:00
Victor Zarubkin
ac31aee77c #37 Fix typo 2017-06-07 20:51:45 +03:00
Victor Zarubkin
48fb240ca0 #37 Replaced std::string with char* for NonscopedBlock with manual memory management 2017-06-07 20:50:16 +03:00
Victor Zarubkin
93c3066095 update #42 : Slightly better solution with less amount of black magic - different data structures for context switch events. Core API changed! 2017-06-07 01:39:45 +03:00
Sergey Yagovtsev
b14dbef78d update #42: linux build 2017-06-06 23:52:18 +03:00
Victor Zarubkin
4a9daf3bb4 update #42 : fixed possible statistics display bug; work around storing 64-bit thread id for context switch events (requires testing);
* (GUI) Added popup window when moving mouse cursor to thread name in Diagram window;
2017-06-06 20:46:06 +03:00
Sergey Yagovtsev
ec21fa0554 fix #40 2017-06-06 13:57:19 +03:00
Victor Zarubkin
65ac892e32 Fixing problems after changing thread_id_t to uint64_t from uint32_t: There is still a big problem with target-thread ids of context-switch events on *nix systems (it has been stored in block_id_t which is uint32_t and now it requires Core API changes to support new thread_id_t). Also there is a problem with statistics displaying (for top-level blocks parent_index had value of thread-id, it requires a work around now). 2017-06-05 21:24:01 +03:00
Sergey Yagovtsev
1c5084c6de for #41: minor beautifulize 2017-06-05 13:11:02 +03:00
Sergey Yagovtsev
ccd0626bf8 backward compatibility with old size of thread_id_t. For #41 2017-06-05 12:57:12 +03:00
Rokas Kupstys
08ae417931 Few more MacOS fixes.
Thread id changed to size_t, required for MacOS because older versions do not have integral thread ids and we must use a pointer returned by pthread_self()/
2017-05-23 19:49:21 +03:00
Josh Engebretson
a01187cf55 Networking fixes for MacOS
Qualify type for std::abs
2017-05-23 19:47:29 +03:00
Sergey Yagovtsev
f988cd4809 v1.2.0 2017-05-08 12:32:56 +03:00
Sergey Yagovtsev
ecbe7780e6 (Core) close #39 Add following cmake options to easy_profiler_core CMakeLists:
BUILD_WITH_CHRONO_STEADY_CLOCK - use std::chrono::steady_clock as a timer. By default is OFF
BUILD_WITH_CHRONO_HIGH_RESOLUTION_CLOCK - use std::chrono::high_resolution_clock as a timer. By default is OFF

If both is set to ON - use std::chrono::high_resolution_clock.
If both is set to OFF - use QueryPerformanceCounter/rtdsc timer.

Note: Do not forget clean CMakeCache file if you've changed an option.
2017-05-06 11:54:24 +03:00
Victor Zarubkin
714e4e0bab (Core) #39 Added macros for possibility to choose std::chrono timer type: EASY_CHRONO_HIGHRES_CLOCK for high_resolution_clock and EASY_CHRONO_STEADY_CLOCK for steady_clock - Use it in CMakeLists.txt 2017-05-04 21:40:48 +03:00
Victor Zarubkin
50b3cc8b7a (Core) Fixed old typo in ProfileManager::setBlockStatus() 2017-05-03 21:18:14 +03:00
Victor Zarubkin
e1bc731570 #37 enclosed MinGW specific 2017-05-01 04:03:26 +03:00
Victor Zarubkin
593395a4aa (Core) #37 No manual ~string() call 2017-04-30 00:17:15 +03:00
Victor Zarubkin
d1e68e0cec (Core) Calculating total children duration per thread/frame/parent 2017-04-20 22:29:02 +03:00
Victor Zarubkin
dff1d8b2a4 (Core) Update #29 : fixed potential memory leak for NonscopedBlock + linux build 2017-04-17 23:31:07 +03:00
Victor Zarubkin
c2b3a8f5dc (Core) Update #29 - added non-scoped block functionality for beginning and ending block manually from different functions.
(Core) Added new API functions for getting current time (ticks) and converting it to nano- and microseconds.
2017-04-17 22:27:10 +03:00
Sergey Yagovtsev
d02e568dae v1.1.0 2017-04-10 23:39:00 +03:00
Victor Zarubkin
f17aa956cd (Core) Add main thread check 2017-04-09 10:23:59 +03:00
Victor Zarubkin
f00d731da4 (Core) Fixed main thread name compare 2017-04-09 09:12:27 +03:00
Victor Zarubkin
a9d13deb18 (Core) Fixed serious error caused by invoking endBlock() while dumping blocks to stream/file 2017-04-06 23:10:14 +03:00
Victor Zarubkin
654bfdf9da (Core) Fix incorrect storing 2017-04-06 22:59:33 +03:00
Victor Zarubkin
c8e97dac26 (Core) Fixed average frame duration calculation; Fixed addBlockDescription crash when dll/so has been unloaded and loaded again. 2017-04-05 22:36:06 +03:00
Victor Zarubkin
8b7a68266c (Core) Added new API functions for requesting local-average frame duration (like local-max) 2017-04-03 23:08:52 +03:00
Victor Zarubkin
a2b62613a2 (Core) Frame counter: significantly simplified interface - there is no need to start frame counter explicitly. Top block is frame. 2017-04-02 14:23:11 +03:00
Victor Zarubkin
10b04a4748 (Core) First step for getting frame time at run-time.
Now you can use EASY_FRAME_COUNTER (which is only frame-counter) or EASY_FRAME (which is EASY_FRAME_COUNTER + EASY_BLOCK) or EASY_FRAME_FUNCTION (which is EASY_FRAME_COUNTER + EASY_FUNCTION) to measure frame time even if profiler is disabled.
To get frame time you can use profiler::main_thread::frameTimeLocalMax to get maximum frame duration since last call or profiler::main_thread::frameTime to get last frame time.
--- NOTE: You have to put EASY_MAIN_THREAD to your main thread to be able to use profiler::main_thread functions.
If you do not want to then you can use same functions from profiler::this_thread, but you will have to call them from your main thread.
2017-03-31 21:17:08 +03:00
Victor Zarubkin
08372ac136 Update license 2017-03-30 06:55:15 +03:00