mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-10 02:31:48 +00:00
236 lines
11 KiB
Plaintext
236 lines
11 KiB
Plaintext
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.
|
|
|
|
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.
|
|
|
|
v0.4 (xxxx-xx-xx)
|
|
-----------------
|
|
|
|
- Renamed "standalone" utility to "profiler".
|
|
- Added trace update utility, which will convert files saved in previous
|
|
versions of tracy to be up-to-date.
|
|
- Fix regression causing varying size of profiler window for different
|
|
captures.
|
|
- 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.
|
|
- 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.
|
|
- Added memory allocation info window.
|
|
- Selecting memory allocation on a plot will draw time range of the
|
|
allocation.
|
|
- 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.
|
|
- Added named versions of tracing macros that allow specifying scoped
|
|
variable name.
|
|
- The main profiler window is now kept at the bottom of windows stack.
|
|
- The "profiler" utility will now use a custom embedded font.
|
|
- Microseconds are now displayed using correct symbol ('μ' instead of 'u').
|
|
- Unix builds of the "profiler" utility will now ask for a file name when
|
|
saving a trace.
|
|
- Progress popup is now displayed when a trace file is loading.
|
|
- Zones that share source location with a zone that is hovered over are now
|
|
highlighted.
|
|
- Added ability to zoom-in to a selection range made using middle mouse
|
|
button.
|
|
- Holding the ctrl key will switch to zoom-out mode.
|
|
- The "profiler" utility will use less resources when its window is
|
|
out-of-focus or minimized.
|
|
- Added support for cross-DLL profiling.
|
|
- Items in options menu (locks, threads, etc.) are now described with number
|
|
of events.
|
|
- Created an extensive user manual for the profiler.
|
|
- 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.
|
|
- Frames can now also be discontinuous.
|
|
- Frames and zones too small to be displayed will be marked with a zig-zag
|
|
pattern.
|
|
- 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.
|
|
- Added trace information window.
|
|
- Displayed memory sizes are now properly formatted.
|
|
- Added call stack tree for memory allocations.
|
|
- 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.
|
|
- 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.
|
|
- The main profiler view will now occupy the whole window. Previous behavior
|
|
is still available for embedded use cases.
|
|
- Many button labels are now accompanied by icons.
|
|
- Fonts should now be less blurry.
|
|
- "Go to parent" button in zone info window won't be displayed if there is
|
|
no parent to go to.
|
|
- Compare menu now has colored markers to make it easier to distinguish
|
|
"this" and "external" traces.
|
|
- Tracy will now collect host information, like CPU name, amount of system
|
|
memory, etc.
|
|
- 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.
|
|
|
|
|
|
v0.3.3 (2018-07-03)
|
|
-------------------
|
|
|
|
- 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.
|
|
- 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.
|
|
- Memory usage plot is automatically generated.
|
|
- Basic allocation information is displayed in memory plot tooltips.
|
|
- A summary of memory events within a zone (and its children) is now
|
|
printed in zone info window.
|
|
- Support loading profile dumps with no memory allocation data (generated by
|
|
v0.2).
|
|
- Added ability to display global statistics of a selected zone from the
|
|
zone info window.
|
|
- Fixed regression with lock announce processing that appeared during
|
|
worker/viewer split.
|
|
- Allow selecting/unselecting all locks for display.
|
|
- Performance improvements.
|
|
- Don't save unneeded lock information in trace file.
|
|
- Don't save thrash in message list data.
|
|
- Allow expanding view span up to one hour, instead of one minute.
|
|
- 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.
|
|
- 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.
|
|
- Display y-range of plots.
|
|
- 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.
|
|
- 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.
|
|
- Improved message list window.
|
|
- Messages are now displayed in columns.
|
|
- Originating thread of each message is now included in the list.
|
|
- Messages can be filtered by the originating thread.
|
|
- You can now navigate to next and previous frame.
|
|
- Zone statistics can be now displayed using only self times.
|
|
- 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.
|
|
- Fixed regression causing invalid reporting of an active CPU in zone end
|
|
events, if MSVC rdtscp optimization was not enabled.
|
|
- Ability to collect true call stacks.
|
|
- Supported on Windows, Linux, Android.
|
|
- The following events can collect call stacks:
|
|
- Memory alloc/free.
|
|
- Zone begin.
|
|
- GPU zone begin.
|
|
- Zone stack trace now also displays frames from a real call trace.
|
|
- On Linux call stack frame name resolution requires a call to dladdr,
|
|
which in turn requires linking with libdl.
|
|
- 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.
|
|
- On Windows "standalone" utility now adapts to system DPI setting.
|
|
- Optional per-call zone naming.
|
|
|
|
|
|
v0.2 (2018-04-05)
|
|
-----------------
|
|
|
|
- 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.
|
|
- List occurrences of a zone, grouped by thread, or by user text.
|
|
- Zone groups can be selected and highlighted on histogram graph.
|
|
- 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.
|
|
- Zone info windows improvements.
|
|
- Visual improvements to zone info window child list.
|
|
- Zone info windows now show zone thread.
|
|
- Display zone stack trace.
|
|
- Hide pause/resume button if there's no data connection (i.e. trace was
|
|
loaded from file).
|
|
- Source location statistics view has been added.
|
|
- Fixed crash when a saved trace was opened, but no trace capture session
|
|
was performed before.
|
|
- Standalone server will now open trace files passed as an argument to the
|
|
executable.
|
|
- Fix possible crash in SetThreadName, that could happen if TLS init was
|
|
delayed until first use of thread local variable.
|
|
- Store full thread name if pthreads (with 15 character name limit) are
|
|
used.
|
|
- Properly handle unaligned memory access (no performance impact).
|
|
- Fixed broken lock identifiers in try_lock().
|
|
|
|
|
|
v0.1 (2017-12-18)
|
|
-----------------
|
|
|
|
- Initial release.
|