Releases: dfeneyrou/palanteer
Releases · dfeneyrou/palanteer
v0.7.1
v0.6
This is a feature delivery release
Compared to the previous release, the main added changes are:
- Feature (global): efficient printf-like logging (supersedes markers).
- nanosecond logging performance
- format arguments can be searched and graphed
- Feature in the viewer: some exports have been added
- Important fix: instrumentation crash under stress
- Important fix: correctness of multi-resolution graphs
Behavior change / compatibility break
- Viewer: the marker window has been replaced with the log window, which generalizes markers and provides more features
- Viewer: old stored records will not be readable anymore (incompatibility due to somes changes for the logs)
- Instrumentation: old viewers are not compatible, due to transport header change.
- Instrumentation: plMarker APIs are deprecated.
- they are currently wrapped on plLogWarn function and will be removed soon
New features
- Global: efficient printf-like logging
- nanosecond logging performance
- format arguments can be searched and graphed
- a comparison with Nanolog and spdlog is provided
- Viewer: some exports available
- anywhere with ctrl-P for screen capture
- in main menu bar for Chrome Trace Format (JSON)
- in text and log windows for a text export
- in plot windows for CSV export
Fixes and improvements
- C++ instru: remove a critical flaw in the event collection mechanism which could lead to a crash under stress (thanks @gpascualg for the report with details)
- Python instru: the filename of the exception source is now provided in the log text, along with the line number
- Viewer: reworked the computation of the multi-resolution of the graphs. Previous version was broken and provided poor visual results
- Viewer: fix the profiling applied always on a particular thread, for threads without provided names (thanks @jojado8408 for reporting)
- Code cleaning: fix "issues" highlighted by the tool include-what-you-use
- Code cleaning: fix "issues" highlighted by the static analysis tool CodeChecker
- Code cleaning: remove warnings when compiling under Windows with the flag /W4 /permissive- (thanks @gpascualg and @BrodyHiggerson)
Palanteer v0.5
This is a feature delivery release
Compared to the previous release, the main added features are:
- Multi-stream (or multi-process) recording
- Automatic C++ instrumentation (GCC only)
Behavior change / compatibility break
- Viewer: external string lookups are now per record (they were previously per application).
- Viewer: old stored records will not be readable anymore (incompatibility due to the added stream informations)
- Instrumentation: old viewers are not compatible, due to transport header change.
New features
- Server and Viewer: add support for multistream (or multiprocess) records
- Server: support for multiple socket connections and multistream recording
- Viewer: add the configuration menu for the mono/multi stream
- Viewer: file dialog supports multi selection with highlight
- Viewer: record options are displayed per stream
- Viewer: enable Dear ImGui keyboard navigation
- Instrumentation: support of automatic C++ function instrumentation (GCC only)
The external string lookup is now independent for each record, and covers also this feature. - Python: add support for Python 3.10 packages
Fixes and improvements
- Viewer: lock use can now be graphed for all threads (menu on the lock name)
- Viewer: in Text view, all events with dates are now taken into account for navigation
- Viewer: fix a crash when asking an histogram for a "lock use" scope
- Viewer: fix persistence of graphs between launches
- Viewer: fix a crash when the saved layout is not matching the record thread names
- Viewer: fix the display of the used size of records (now 64 bits size)
- Server: more robust handling of duplicated thread names
- Server: fix a crash when getting memory details with big quantity of non released allocations
- Python: fix an incorrect event logging sequence when both using coroutines and tracing C calls
- Python instru: disable an annoying warning on Windows
- C++ instru: collect the used language, the context switch collection state and the auto instrumentation state
- C++ instru: waiting for server connection is now a configurable timeout, no more a binary state
- C++ instru & server: more robust short date handling
- C++ instru: more robust initialization
- C++ instru: threads (standard or virtual) can be declared before service initialization and are persistent across multiple service initialization (thanks @BrodyHiggerson for the use case)
- C++ instru: reduced disabled Palanteer include cost on windows with USE_PL=0 (now a few millisecond, as for Linux)
- Scripting: improve support of external strings, now applied also on the event specification
Palanteer v0.4
This is a bug fix release
Behavior change / compatibility break
- None
New features
- Viewer: add support for high DPI
Fixes and improvements
- Python instrumentation: fix a crash when tracing C calls
- Viewer: fix a crash in some cases in the file dialog window when playing with sorting
- C++ instrumentation: added printf-like API for plDeclareVirtualThread and plDeclareThreadDyn
- Documentation updated
- Documentation: upgraded Markdeep
- Viewer: upgraded Dear ImGui
Palanteer v0.3
This is a general maintenance release
Compared to the previous release, the main changes are:
- Addition of the 'compact application model' taking advantage of 32 bits architectures to reduce the exchanged data to 12 bytes per event (instead of 24 bytes)
- 10% speed gain on server side (compression library update)
Behavior change / compatibility break
- Viewer: old stored records will not be readable anymore (break in 6a1bcdf)
- Instrumentation: old viewers are not compatible, due to added options (see below). But the current viewer accept older instrumentation libraries.
New features
- Instrumentation: add support for a hash 'salt', useful when using 32 bits hash to remove potential collisions.
- Instrumentation: add support for the 'compact model', allowing 50% reduction of used bandwidth (i.e. 12 bytes per event) between client and server, under some instrumentation constraints
- Python: add interface to profile Python modules (thanks @Victor333Huesca!)
- Scripting improved API to handle the case of externally launched programs (thanks @LotemAm!)
- Viewer: application icon added under Windows
Fixes and improvements
- Viewer: display of all instrumentation options in the 'Record view'
- Instrumentation: Added the missing "group" version of plDeclareThread
- Server: add the missing control of the instrumentation protocol version, to detect client-server incompatibilities
- Documentation updated
- Viewer: application icon added under Windows
- Server: upgraded compression library zstd to benefit from the recent speed improvement for low compression ratios.
- Viewer: upgraded Dear ImGui and stb_image.h
Palanteer v0.2
This is the first Palanteer official release
Compared to the initial commit, the main changes are:
- Virtual/userland thread support
- Stability fixes (one of them critical)
- Improved packaging.
Behavior change / compatibility break
- Viewer: old stored records will not be readable anymore (break in 8e9e9ac)
- The Python instrumentation does not log anymore the C calls by default.
Indeed, wildly used built-in function (like list "append") may be very heavy and are not always necessary
New features
- Viewer: record catalog improvement: total size per app is displayed and a menu to collapse/open alls app was added
- Server: 10% faster event processing on server side by disabling specific assertions in containers in release mode.
- Virtual/green/userland thread support in C++, and the equivalent asyncio/gevent/greenlet in Python
- Improved CMakeFile.txt (thanks @bareya, @RichieSams!)
- Python packages are now wheels
- Python code is now formatted for PEP8 (with the tool "black")
Fixes
- Server: fixed the lock event automata (a not taken lock event after a wait begin event was not ended as it should)
- Viewer: fixed the search on Windows (strcasestr exists but does not work properly)
- Viewer: fixed the behavior of clicking on items in the text view
- Viewer: fixed the plot and histogram layout persistency
- Server: filter problematic characters for a file in the sent application name
- Server: improve robustness and behavior of the server connection automata
- Server: improve robustness of the server against corrupted data sent from instrumentation
- Instrumentation; fixed a major stability issue (event corruption) in the collection mechanism
- Viewer: fixed proper quitting of the viewer
- Instrumentation: fixed missing deactivated APIs (thanks @Lnsrini, @learn-more)
- Tools: fixed missing API names in the tool extStringCppParser.py
- Documentation improvement (thanks @ajweeks!)