Victor Zarubkin
92a5ca4a75
Big bunch of changes:
...
* update copyright
* fix css parsing
* fix block name search
* add matching text highlighing for find results
* add calculation of block statistics for selected area
* new action: right-click on a block on "Diagram" selects region using left and right bounds of this block
* other optimizations
2019-10-20 16:12:37 +03:00
Sergey Yagovtsev
53289cec81
Static thread local
2018-09-18 23:20:43 +03:00
Sergey Yagovtsev
99b761375b
Remove ATOMIC_VAR_INIT
2018-09-18 22:41:58 +03:00
Matt Chiasson
cd84bb34ce
fixed the build when using Chrono clock
...
Fixes #128
2018-09-18 14:19:38 -04:00
Victor Zarubkin
0ae430410d
#106 [Core][UI] Added possibility to add user bookmarks with double-clicking on a timeline in the Diagram window.
...
#112 [UI] Fixed losing focus (and getting under MainWindow) for Blocks widget.
#0 [UI] UI styling, added custom window header and dialogs (could be turned off/on and adjusted position at [Settings -> Appearance] menu).
2018-06-09 02:18:39 +03:00
Victor Zarubkin
1301dd05dc
#0 [Core] fixed typo
2018-05-15 23:56:29 +03:00
Victor Zarubkin
82bc0c3901
#0 [Core] Windows build
2018-05-08 01:37:35 +03:00
Victor Zarubkin
8c90ee7ef5
#0 [Core] refactoring
2018-05-07 21:42:17 +03:00
Victor Zarubkin
3253fe2633
#48 [Core] Rearranged file header members order to minimize padding;
...
[Core] Changed version to 2.0.0;
2018-04-02 01:53:29 +03:00
Victor Zarubkin
5e632bedee
#31 [Core] Arbitrary values: replaced size_t with uint16_t; [Gui] Added support of arrays to arbitrary values tree
2018-03-07 20:52:39 +03:00
Victor Zarubkin
192ab87e4c
#0 Simplified some lambdas
2018-01-29 23:42:18 +03:00
Victor Zarubkin
091d5447ce
#0 Updated copyright dates; [Gui] thread_pool.cpp MSVC build fix; [Core] Renamed getCurrentTime() to profiler::clock::now() + renamed profiler::currentTime() to profiler::now()
2018-01-29 23:29:43 +03:00
Victor Zarubkin
22c61a42b5
#75 [Core] No waiting when dumping blocks. All events should now be stored properly.
2018-01-08 02:56:51 +03:00
Victor Zarubkin
2c008b77ed
Merge remote-tracking branch 'origin/develop' into release_2_0
...
# Conflicts:
# easy_profiler_core/block.cpp
# easy_profiler_core/profile_manager.cpp
# easy_profiler_core/reader.cpp
# profiler_gui/common_types.h
# profiler_gui/descriptors_tree_widget.cpp
2018-01-04 17:59:21 +03:00
uykusuz
50cd560722
#0 : various fixes for windows build ( #84 )
...
* #0 : various fixes for windows build
* remove warnings that definition of a variable hides previously defined ones
* remove warnings that function argument is not used
* remove warnings that statements are not reached
* event_trace_win: fix compilation with UNICODE
* #0 various windows fixes: react to PR comments
* localize unicode handling of process info to ProcessInfo
* fix compilation error in Properties constructor
* event_trace_win: fix bug in ProcessInfo initialization
We didn't retry setting the name when GetModuleBaseName() didn't succeed,
even though we did that before the last refactoring.
* Revert "event_trace_win: fix bug in ProcessInfo initialization"
This reverts commit c4ce6cf488be5489fa0a1a9c24e92dd39bbc42a1.
* Revert "#0 various windows fixes: react to PR comments"
This reverts commit cae31a25371e53a3645ddab82372c3772138d658.
* #0 various windows fixes: react to PR comments again
* keep number of allocations minimal
* add getProcessName() to retrieve the process name as char always (i.e. not UNICODE)
2018-01-04 17:15:02 +03:00
Victor Zarubkin
d049a1339e
#75 [Core] No more waiting behavior when dumping blocks. Current solution resolves possible dead-lock but restricts any Events out of Frame bounds (You can see that the last event for LoadingResources thread in the profiler_sample is always absent).
2017-12-28 22:21:54 +03:00
Sergey Yagovtsev
941c5667bd
minor refactoring
2017-12-28 00:00:20 +03:00
Victor Zarubkin
b73044fddd
#31 [Core] Fixed issue with storing arbitrary value while dumping. // [GUI] Further values viewer progress.
2017-12-14 23:12:27 +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
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
eef1dab923
#31 [Core] further work on arbitrary values
2017-11-08 21:38:07 +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
Victor Zarubkin
cac628ce82
#31 added arbitrary value id
2017-10-21 01:57:48 +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
Victor Zarubkin
1f8cc6346c
#0 [Core] Suppress warning for unused variable
2017-10-04 22:46:13 +03:00
Victor Zarubkin
d5f2ef0c6c
#0 Build fix + reduced number of thread-local variables
2017-09-30 20:45:06 +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
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
01415cbdb8
Again, auto can only add to confusion here.
2017-08-22 15:07:37 -05:00
Blake Martin
28f755e0b3
There is no point in using auto here.
2017-08-16 16:17:11 -05: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
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
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
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
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
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
593395a4aa
(Core) #37 No manual ~string() call
2017-04-30 00:17:15 +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
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
Victor Zarubkin
8ae5139b87
(Core): Trying to reduce data copying while sending profiled information
2017-03-30 06:47:00 +03:00
Sergey Yagovtsev
15912970db
replace double quotes to angle brackets - fixed #28
2017-03-05 23:50:38 +03:00
Victor Zarubkin
95ad72c9a7
A couple of fixes for pull-request
2017-03-03 00:29:45 +03:00
Rokas Kupstys
8f7ffa9102
Fix atomic memory model in setEventTracingEnabled()
2017-03-02 10:28:43 +02:00
Rokas Kupstys
e7f5cc0748
New API:
...
* bool isEnabled()
* bool isListening()
* bool isEventTracingEnabled()
* bool isLowPriorityEventTracing()
2017-03-02 10:26:13 +02:00
Victor Zarubkin
11fbfe65d4
Added more log messages (logging could be enabled via set(EASY_OPTION_LOG ON) in easy_profiler_core/CMakeLists.txt)
2017-02-08 23:20:09 +03:00
Victor Zarubkin
227a23c266
Added possibility to disable predefined colors palette to reduce binary size when user want to use own colors palette
2017-02-08 22:35:46 +03:00
Victor Zarubkin
105d8334e1
Removed redundant copying of data from std::stringstream to std::ofstream in dumpBlocksToFile()
2017-02-08 22:06:38 +03:00
Holger Rapp
7641951247
Fixes for clang 3.8.
...
- Disables warnings for no-braced-scalar-init which shows up for ATOMIC_VAR_INIT.
- Fixes compile warnings, mostly "moving a temporary objects prevents
copy elision" (-Wpessimizing-move) and unused variables.
- Adds some necessary fields to make the sample compile after having
build the core library.
2017-02-07 17:19:58 +01:00
Victor Zarubkin
e9bed4c839
(Core) Major update (file format NOT affected). Description:
...
1) Added macro EASY_CONST_NAME(name) to make possible to force EasyProfiler think that given block name is const and not changed during application execution (this rely to compile-time strings saved into a run-time variable);
2) Starting from now, EasyProfiler will not store partially finished frames - first, this means that profiler enabled during frame execution will skip all blocks from this frame, and second, this means that when dumping profiled information profiler will wait until all frames finish before dumping blocks.
2016-12-21 21:59:40 +03:00
Victor Zarubkin
7b63ae39d2
CMake + core: added options to CMakeLists.txt. TODO: maybe set them via CMake "option(...)" command
2016-12-13 21:53:29 +03:00
Victor Zarubkin
29f81d1244
(Core) Monitoring threads, removing threads without blocks, events and context switches;
...
* (Core) Context switch events also register threads for current process;
* (Core) Writing process id into output file (old files still could be opened);
2016-12-12 22:26:32 +03:00
Sergey Yagovtsev
4cb7d90e49
Prevent crash on exited thread
2016-12-12 03:12:50 +03:00
Victor Zarubkin
88dc699099
No need to check for nullptr while deleting
2016-12-08 22:19:45 +03:00
Sergey Yagovtsev
cbbf570fae
Define EASY_PRODUCT_VERSION by concatenating major, minor and patch strings
2016-12-04 16:40:00 +03:00
Sergey Yagovtsev
256f5f6041
Rename src and move include directory
2016-12-02 00:35:25 +03:00