2018-04-05 17:20:28 +00:00
|
|
|
Note: There is no guarantee that version mismatched client and server will
|
|
|
|
be able to talk with each other. Network protocol breakages won't be listed
|
|
|
|
here.
|
|
|
|
|
2018-05-25 19:24:18 +00:00
|
|
|
Note: Release numbers are nothing more than numbers. There are some
|
|
|
|
"missing" versions due to trace file changes during development. This is not
|
|
|
|
a mistake.
|
2018-04-05 17:20:28 +00:00
|
|
|
|
2018-12-30 22:06:03 +00:00
|
|
|
v0.5 (xxxx-xx-xx)
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
- Major decrease of trace dump file size.
|
2018-12-30 22:14:00 +00:00
|
|
|
- Display dump file size change in the update utility.
|
2019-01-06 18:20:39 +00:00
|
|
|
- Display trace loading time.
|
2019-01-14 22:45:23 +00:00
|
|
|
- Added C API.
|
|
|
|
- Profiling session may now gracefully terminate, due to incorrect
|
|
|
|
instrumentation. A popup with termination reason will be displayed.
|
2019-01-20 15:57:31 +00:00
|
|
|
- Call stack frames now have a proper source file and file line information
|
|
|
|
on Linux.
|
2019-01-20 18:35:25 +00:00
|
|
|
- Single call stack frame may now have multiple entries, representing
|
|
|
|
inlined function calls.
|
2019-01-23 13:26:31 +00:00
|
|
|
- Self time of zones may be now displayed in the find zone menu.
|
2019-01-24 18:14:10 +00:00
|
|
|
- Added ability to disconnect from a client (with some caveats).
|
2019-01-30 00:54:52 +00:00
|
|
|
- Find zone groups can now be sorted by mean time per call.
|
2019-02-06 21:39:15 +00:00
|
|
|
- Call stack memory allocations tree improvements:
|
|
|
|
- Add top-down variant to complement the previously available bottom-up
|
|
|
|
one.
|
|
|
|
- Add ability to group tree nodes by function name.
|
2019-02-10 16:25:19 +00:00
|
|
|
- Zones displayed in the find zone menu can be now grouped by order of
|
|
|
|
appearance, execution time or name.
|
|
|
|
- Time is now displayed without trailing fractional zeros (e.g. "2.5 ms"
|
|
|
|
instead of "2.50 ms").
|
|
|
|
- Child zones displayed in zone info window can be now grouped by source
|
|
|
|
location.
|
2019-02-17 15:23:07 +00:00
|
|
|
- Selected or hovered lock is now highlighted on the timeline.
|
2018-12-30 22:06:03 +00:00
|
|
|
|
2018-12-30 16:57:55 +00:00
|
|
|
v0.4.1 (2018-12-30)
|
|
|
|
-------------------
|
2018-10-21 13:46:53 +00:00
|
|
|
|
|
|
|
- Active frame set can be now switched by clicking on a frame set on the
|
|
|
|
timeline.
|
2018-10-21 15:46:21 +00:00
|
|
|
- Add ability to go to a specified frame.
|
2018-10-23 17:47:19 +00:00
|
|
|
- Most commonly used addresses can be now selected from the drop-down menu.
|
2018-11-25 18:17:17 +00:00
|
|
|
- Fixed corner case problem with profiler initialization on Windows.
|
|
|
|
- Added third state (stopped) to the pause/resume button. It will be used
|
|
|
|
after the connection to the client is terminated.
|
|
|
|
- Active trace can be discarded.
|
2018-12-13 13:44:20 +00:00
|
|
|
- Call stack capture may be forced through TRACY_CALLSTACK define.
|
2018-12-16 18:58:11 +00:00
|
|
|
- Lock info window has been added.
|
2018-12-16 20:02:51 +00:00
|
|
|
- Time of lock creation and termination is now being tracked.
|
2018-12-18 15:58:29 +00:00
|
|
|
- Menu bar buttons are now toggles that can also close their corresponding
|
|
|
|
windows.
|
|
|
|
- Find zone and compare menu improvements.
|
|
|
|
- Ability to ignore case during search.
|
|
|
|
- Pressing enter key will now start search, just like pressing the "find"
|
|
|
|
button.
|
2018-12-22 16:41:29 +00:00
|
|
|
- Using the ^F keyboard shortcut will open the find zone menu and focus
|
|
|
|
the input box.
|
2018-12-20 16:08:24 +00:00
|
|
|
- Added ability to automatically connect to an IP address in the graphical
|
|
|
|
profiler application (use "-a address" argument to enable).
|
2018-12-22 16:41:29 +00:00
|
|
|
- Pressing enter key after entering client address in the welcome dialog
|
|
|
|
will now automatically begin connection process.
|
2018-10-21 13:46:53 +00:00
|
|
|
|
2018-10-09 17:40:18 +00:00
|
|
|
v0.4 (2018-10-09)
|
2018-07-08 14:56:09 +00:00
|
|
|
-----------------
|
|
|
|
|
2018-08-07 20:26:37 +00:00
|
|
|
- Renamed "standalone" utility to "profiler".
|
2018-07-08 14:56:09 +00:00
|
|
|
- Added trace update utility, which will convert files saved in previous
|
|
|
|
versions of tracy to be up-to-date.
|
2018-08-26 15:03:34 +00:00
|
|
|
- Optional high compression (--hc) mode is available that will increase
|
|
|
|
the compression level, at the cost of considerably longer compression
|
|
|
|
time.
|
2018-07-10 18:47:09 +00:00
|
|
|
- Fix regression causing varying size of profiler window for different
|
|
|
|
captures.
|
2018-07-12 11:24:51 +00:00
|
|
|
- Added support for on-demand tracing.
|
|
|
|
- If a client application is compiled with the TRACY_ON_DEMAND macro
|
|
|
|
defined, tracing will not begin until a connection to server is
|
|
|
|
established.
|
|
|
|
- Since data is not fully captured in this mode, the resulting trace will
|
|
|
|
be less precise, until application state is appropriately reset. For
|
|
|
|
example, locks need to be fully released, zone stacks need to be
|
|
|
|
flushed. This is an automatic process.
|
|
|
|
- All tracing macros are able to work in the on-demand mode.
|
2018-07-15 14:02:25 +00:00
|
|
|
- Improved compatibility with various system setups.
|
|
|
|
- Aside from using TRACY_NO_EXIT define you can also set the same-named
|
|
|
|
environmental variable to 1 to get the same effect.
|
|
|
|
- Added ability to show/hide all threads and plots.
|
|
|
|
- Performance improvements.
|
2018-09-28 09:46:22 +00:00
|
|
|
- Improvements to memory data presentation.
|
|
|
|
- Added memory allocation info window.
|
|
|
|
- Selecting memory allocation on a plot will draw time range of the
|
|
|
|
allocation.
|
|
|
|
- Middle clicking on an memory allocation address (or on a button in
|
|
|
|
memory allocation info window) will zoom the view to the allocation
|
|
|
|
range.
|
2018-07-21 22:07:16 +00:00
|
|
|
- Find zone menu improvements:
|
|
|
|
- Zones can be now also grouped by call stacks.
|
|
|
|
- Zone groups can be now also sorted by time spend in each zone.
|
|
|
|
- Zone groups list now displays group times.
|
2018-09-01 22:37:13 +00:00
|
|
|
- Average and median zone times are now displayed on the histogram.
|
2018-10-09 13:55:16 +00:00
|
|
|
- Selected zones will be highlighted on the timeline view.
|
2018-07-26 18:18:17 +00:00
|
|
|
- Added named versions of tracing macros that allow specifying scoped
|
|
|
|
variable name.
|
2018-07-28 17:30:08 +00:00
|
|
|
- The main profiler window is now kept at the bottom of windows stack.
|
2018-08-07 20:26:37 +00:00
|
|
|
- The "profiler" utility will now use a custom embedded font.
|
2018-07-28 17:30:08 +00:00
|
|
|
- Microseconds are now displayed using correct symbol ('μ' instead of 'u').
|
2018-08-07 20:26:37 +00:00
|
|
|
- Unix builds of the "profiler" utility will now ask for a file name when
|
2018-07-28 17:30:08 +00:00
|
|
|
saving a trace.
|
|
|
|
- Progress popup is now displayed when a trace file is loading.
|
2018-07-28 17:55:17 +00:00
|
|
|
- Zones that share source location with a zone that is hovered over are now
|
|
|
|
highlighted.
|
2018-07-29 18:52:47 +00:00
|
|
|
- Added ability to zoom-in to a selection range made using middle mouse
|
|
|
|
button.
|
|
|
|
- Holding the ctrl key will switch to zoom-out mode.
|
2018-08-07 20:26:37 +00:00
|
|
|
- The "profiler" utility will use less resources when its window is
|
2018-07-29 20:13:01 +00:00
|
|
|
out-of-focus or minimized.
|
2018-08-01 17:26:10 +00:00
|
|
|
- Added support for cross-DLL profiling.
|
2018-08-04 13:11:08 +00:00
|
|
|
- Items in options menu (locks, threads, etc.) are now described with number
|
|
|
|
of events.
|
2018-09-18 14:15:50 +00:00
|
|
|
- Source location of lock declaration is also provided.
|
2018-08-04 14:35:34 +00:00
|
|
|
- Created an extensive user manual for the profiler.
|
2018-08-04 19:55:08 +00:00
|
|
|
- Added ability to capture multiple frame sets.
|
|
|
|
- Viewer will display multiple frame ranges at once.
|
|
|
|
- Only one frame set can be active at once. The selected one is used for
|
|
|
|
the frame navigation graph, frame navigation buttons and drawing frame
|
|
|
|
separators.
|
2018-10-05 20:40:08 +00:00
|
|
|
- The active frame set will be highlighted, and the rest will be dimmed
|
|
|
|
out.
|
2018-08-05 00:31:21 +00:00
|
|
|
- Frames can now also be discontinuous.
|
2018-08-04 21:32:53 +00:00
|
|
|
- Frames and zones too small to be displayed will be marked with a zig-zag
|
|
|
|
pattern.
|
2018-08-05 15:00:21 +00:00
|
|
|
- General improvements to message list and message markers.
|
|
|
|
- Hovering over message on a list will highlight its marker (previously it
|
|
|
|
only worked the other way).
|
|
|
|
- Left clicking on a message marker will focus the message list on the
|
|
|
|
selected message.
|
|
|
|
- Middle clicking on a message marker will center it on screen.
|
2018-08-08 17:25:44 +00:00
|
|
|
- Added trace information window.
|
2018-09-01 22:37:13 +00:00
|
|
|
- This includes frame time statistics and histogram.
|
2018-08-08 18:39:16 +00:00
|
|
|
- Displayed memory sizes are now properly formatted.
|
2018-08-14 16:49:13 +00:00
|
|
|
- Added call stack tree for memory allocations.
|
2018-09-27 21:20:21 +00:00
|
|
|
- You can display allocations list for each call stack tree entry.
|
2018-08-17 13:39:09 +00:00
|
|
|
- The source code of the profiled application may now be viewed in the
|
|
|
|
profiler.
|
|
|
|
- BIG FAT WARNING: The actual profiled program source code is not known to
|
|
|
|
the profiler. It only checks if there is a file on your disk that
|
|
|
|
matches the file name of the captured source location. Even if the file
|
|
|
|
is displayed, it may be out of date.
|
2018-08-17 20:26:40 +00:00
|
|
|
- CPU and GPU zones will have "Source" button, if source file can be
|
|
|
|
opened.
|
|
|
|
- Source files for call stack traces can be opened by right-clicking on
|
|
|
|
the file name. Since in this case there is no button that can be hidden,
|
|
|
|
a small animation will be played to notify user if the source cannot be
|
|
|
|
opened.
|
2018-08-17 15:05:32 +00:00
|
|
|
- The main profiler view will now occupy the whole window. Previous behavior
|
|
|
|
is still available for embedded use cases.
|
2018-08-17 20:26:40 +00:00
|
|
|
- Many button labels are now accompanied by icons.
|
2018-08-17 19:40:59 +00:00
|
|
|
- Fonts should now be less blurry.
|
2018-08-18 00:13:53 +00:00
|
|
|
- "Go to parent" button in zone info window won't be displayed if there is
|
|
|
|
no parent to go to.
|
2018-09-08 18:25:44 +00:00
|
|
|
- Improvements to the compare traces menu.
|
|
|
|
- There are now colored markers to make it easier to distinguish "this" and
|
|
|
|
"external" traces.
|
|
|
|
- The amount of saved time is now displayed (a difference between total
|
|
|
|
run times of both traces).
|
2018-08-19 16:29:39 +00:00
|
|
|
- Tracy will now collect host information, like CPU name, amount of system
|
|
|
|
memory, etc.
|
2018-08-19 20:24:28 +00:00
|
|
|
- Windows builds of the "profiler" utility will perform a check of supported
|
|
|
|
CPU instruction set and match it against the one required by the binary
|
|
|
|
(by default AVX2 is used). If the program cannot be executed on the
|
|
|
|
processor, a message dialog with workaround instructions will be
|
|
|
|
displayed.
|
2018-08-19 23:09:11 +00:00
|
|
|
- Tracy can intercept crashes and finish sending data from a dying process.
|
2018-08-27 12:08:54 +00:00
|
|
|
- Currently this is only implemented on Windows, Linux and Android.
|
2018-08-21 15:57:24 +00:00
|
|
|
- Call stack window may now display addresses of the frames, instead of
|
|
|
|
source file locations.
|
2018-08-27 23:49:59 +00:00
|
|
|
- Memory events will now properly register their thread.
|
2018-08-31 17:44:17 +00:00
|
|
|
- Profiler settings are now stored in a persistent location.
|
|
|
|
- On Windows settings are stored in %APPDATA%/tracy.
|
|
|
|
- On other platforms settings are stored in $XDG_CONFIG_HOME/tracy or
|
|
|
|
$HOME/.config/tracy, if the variable is not set.
|
|
|
|
- The main profiler window position, size and maximized state are saved
|
|
|
|
and restored.
|
|
|
|
- The size and position of internal windows now doesn't depend on the
|
|
|
|
runtime directory of the profiler executable.
|
2018-09-09 17:46:56 +00:00
|
|
|
- Added connection handshake.
|
|
|
|
- Server won't be able to connect to client if there's a protocol version
|
|
|
|
mismatch.
|
|
|
|
- Client not in on-demand mode will refuse connections after the first
|
|
|
|
connection was made and the initial event buffers were cleared.
|
|
|
|
- A single server will no longer try to connect to multiple clients.
|
2018-09-18 14:25:09 +00:00
|
|
|
- The capture utility will now display time span of the ongoing capture.
|
2018-08-08 17:25:44 +00:00
|
|
|
|
2018-05-25 19:24:18 +00:00
|
|
|
|
2018-07-03 19:50:38 +00:00
|
|
|
v0.3.3 (2018-07-03)
|
2018-05-25 19:24:18 +00:00
|
|
|
-------------------
|
2018-04-05 17:20:28 +00:00
|
|
|
|
2018-04-21 13:21:50 +00:00
|
|
|
- Breaking change: the format of trace files has changed.
|
|
|
|
- Previous tracy version will crash when trying to open new traces.
|
|
|
|
- Loading of traces saved by previous version is supported.
|
|
|
|
- Tracy will no longer crash when trying to load traces saved by future
|
|
|
|
versions. Instead, a dialog advising to update will be displayed.
|
|
|
|
- Tracy will no longer crash in most cases when trying to open files that
|
|
|
|
are not traces. Some crashes are still possible, due to support of old,
|
|
|
|
header-less traces.
|
2018-04-05 17:20:28 +00:00
|
|
|
- Ability to track every memory allocation in profiled program.
|
|
|
|
- Allocation event queuing must be done in order, which requires exclusive
|
|
|
|
access to the serialized queue on the client side. This has no effect on
|
|
|
|
the rest of events, which are stored in a concurrent queue, as before.
|
|
|
|
- You can search for a memory address and see where it was allocated, for
|
|
|
|
how long, etc. This lists all matching allocations since the program was
|
|
|
|
started.
|
|
|
|
- All active (non-freed) allocations may be listed. This shows the current
|
|
|
|
memory state by default, but can go back to any point in time.
|
|
|
|
- Graphical representation of process memory map may be displayed. New
|
|
|
|
allocations/frees are displayed in a bright color and fade out with
|
|
|
|
time. This feature also can look back in time.
|
2018-04-28 14:25:45 +00:00
|
|
|
- Memory usage plot is automatically generated.
|
2018-05-27 18:23:48 +00:00
|
|
|
- Basic allocation information is displayed in memory plot tooltips.
|
2018-05-02 16:20:28 +00:00
|
|
|
- A summary of memory events within a zone (and its children) is now
|
|
|
|
printed in zone info window.
|
2018-04-05 17:20:28 +00:00
|
|
|
- Support loading profile dumps with no memory allocation data (generated by
|
2018-04-14 13:47:09 +00:00
|
|
|
v0.2).
|
2018-04-05 17:31:46 +00:00
|
|
|
- Added ability to display global statistics of a selected zone from the
|
|
|
|
zone info window.
|
2018-04-09 12:29:22 +00:00
|
|
|
- Fixed regression with lock announce processing that appeared during
|
|
|
|
worker/viewer split.
|
2018-04-09 14:15:40 +00:00
|
|
|
- Allow selecting/unselecting all locks for display.
|
2018-04-20 21:29:02 +00:00
|
|
|
- Performance improvements.
|
2018-04-21 14:58:23 +00:00
|
|
|
- Don't save unneeded lock information in trace file.
|
2018-05-25 19:18:51 +00:00
|
|
|
- Don't save thrash in message list data.
|
2018-04-21 14:58:23 +00:00
|
|
|
- Allow expanding view span up to one hour, instead of one minute.
|
2018-04-21 22:58:17 +00:00
|
|
|
- Added trace comparison window.
|
|
|
|
- An external trace has to be loaded first.
|
|
|
|
- Zone query in both traces (current and external).
|
|
|
|
- Both results are overlaid on the same histogram.
|
2018-04-27 17:27:45 +00:00
|
|
|
- Graphs can be adjusted as-if there was the same number of zones
|
|
|
|
collected.
|
|
|
|
- Read time directly from a hardware register on ARM/ARM64, if possible.
|
|
|
|
- User-space access to the timer needs to be enabled in the kernel, so
|
|
|
|
tracy will perform run-time checks and fallback to the old method if the
|
|
|
|
check fails.
|
|
|
|
- Prevent connections in a TIME-WAIT state from blocking new listen
|
|
|
|
connections.
|
2018-04-28 14:46:53 +00:00
|
|
|
- Display y-range of plots.
|
2018-04-29 23:19:37 +00:00
|
|
|
- Added ability to unload traces loaded from files. To do so close the main
|
|
|
|
profiler window. You will return to the connect/open selection dialog.
|
|
|
|
Live captures cannot be terminated this way.
|
2018-05-02 17:28:04 +00:00
|
|
|
- Zones previously displayed in zone info window are remembered and you can
|
|
|
|
go back to them. Closing the zone info window or switching between CPU and
|
|
|
|
GPU zones will clear the memory.
|
2018-05-25 19:18:51 +00:00
|
|
|
- Improved message list window.
|
|
|
|
- Messages are now displayed in columns.
|
|
|
|
- Originating thread of each message is now included in the list.
|
2018-08-18 17:58:09 +00:00
|
|
|
- Messages can be filtered by the originating thread.
|
2018-06-02 20:28:27 +00:00
|
|
|
- You can now navigate to next and previous frame.
|
2018-06-05 22:48:54 +00:00
|
|
|
- Zone statistics can be now displayed using only self times.
|
2018-06-17 17:37:02 +00:00
|
|
|
- Support for tracing GPU events using Vulkan.
|
|
|
|
- Timeline will now display "OpenGL context" or "Vulkan context" instead of
|
|
|
|
"GPU context".
|
|
|
|
- Fixed regression causing invalid display of GPU context appearance time.
|
2018-06-20 20:32:55 +00:00
|
|
|
- Fixed regression causing invalid reporting of an active CPU in zone end
|
|
|
|
events, if MSVC rdtscp optimization was not enabled.
|
2018-06-21 22:33:09 +00:00
|
|
|
- Ability to collect true call stacks.
|
|
|
|
- Supported on Windows, Linux, Android.
|
|
|
|
- The following events can collect call stacks:
|
|
|
|
- Memory alloc/free.
|
2018-06-21 23:31:06 +00:00
|
|
|
- Zone begin.
|
2018-06-21 23:58:50 +00:00
|
|
|
- GPU zone begin.
|
2018-06-24 15:04:32 +00:00
|
|
|
- Zone stack trace now also displays frames from a real call trace.
|
2018-06-26 16:04:10 +00:00
|
|
|
- On Linux call stack frame name resolution requires a call to dladdr,
|
|
|
|
which in turn requires linking with libdl.
|
2018-06-27 23:17:28 +00:00
|
|
|
- Allow manual entry of GPU time drift value.
|
|
|
|
- Unix build system no longer shares object files between different build
|
|
|
|
units.
|
|
|
|
- Fixes inability to build debug and release versions of a single utility
|
|
|
|
without "make clean".
|
|
|
|
- Fixes incompatibility between "standalone" and "capture" utilities due
|
|
|
|
to different set of used feature flags.
|
2018-06-28 22:45:19 +00:00
|
|
|
- On Windows "standalone" utility now adapts to system DPI setting.
|
2018-06-29 14:28:00 +00:00
|
|
|
- Optional per-call zone naming.
|
2018-04-05 17:20:28 +00:00
|
|
|
|
|
|
|
|
2018-04-05 16:57:32 +00:00
|
|
|
v0.2 (2018-04-05)
|
2018-03-18 12:55:44 +00:00
|
|
|
-----------------
|
|
|
|
|
|
|
|
- Fixed broken TRACY_NO_EXIT behavior.
|
|
|
|
- Visual refresh (new color scheme).
|
|
|
|
- Added optional support for live in-depth zone analysis.
|
|
|
|
- Ability to search for zones matching a query.
|
|
|
|
- Histogram of zone time spans.
|
2018-03-20 13:39:10 +00:00
|
|
|
- List occurrences of a zone, grouped by thread, or by user text.
|
|
|
|
- Zone groups can be selected and highlighted on histogram graph.
|
2018-03-18 12:55:44 +00:00
|
|
|
- Support for linear and logarithmic display of time and values.
|
|
|
|
- Histogram bins can show zone counts or total execution time.
|
|
|
|
- Listed zones can be narrowed down by data range selection on histogram.
|
|
|
|
- Separation of server data handling code from the visualisation.
|
|
|
|
- Implementation of a command line capture utility.
|
|
|
|
- Support libraries have been updated.
|
|
|
|
- Fixed an issue that prevented de-duplication of source location payloads.
|
|
|
|
- Fixed an issue that prevented the ability to disable threads in settings
|
|
|
|
menu, if two threads had the same name.
|
|
|
|
- Performance optimizations.
|
|
|
|
- Visual clean up of the settings menu.
|
2018-03-28 00:00:29 +00:00
|
|
|
- Zone info windows improvements.
|
|
|
|
- Visual improvements to zone info window child list.
|
|
|
|
- Zone info windows now show zone thread.
|
|
|
|
- Display zone stack trace.
|
2018-03-24 13:46:44 +00:00
|
|
|
- Hide pause/resume button if there's no data connection (i.e. trace was
|
|
|
|
loaded from file).
|
2018-03-24 14:22:08 +00:00
|
|
|
- Source location statistics view has been added.
|
2018-03-24 21:09:46 +00:00
|
|
|
- Fixed crash when a saved trace was opened, but no trace capture session
|
|
|
|
was performed before.
|
2018-03-24 21:21:34 +00:00
|
|
|
- Standalone server will now open trace files passed as an argument to the
|
|
|
|
executable.
|
2018-03-30 21:45:48 +00:00
|
|
|
- Fix possible crash in SetThreadName, that could happen if TLS init was
|
|
|
|
delayed until first use of thread local variable.
|
2018-03-30 23:24:11 +00:00
|
|
|
- Store full thread name if pthreads (with 15 character name limit) are
|
|
|
|
used.
|
2018-03-31 12:14:49 +00:00
|
|
|
- Properly handle unaligned memory access (no performance impact).
|
|
|
|
- Fixed broken lock identifiers in try_lock().
|
2018-03-18 12:55:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
v0.1 (2017-12-18)
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
- Initial release.
|