This release brings major changes to the runtime implementation.
Run-time
- Change: the 2.1 runtime breaks compatibility with Telemetry 1.x servers.
- Change: (PS3) SPU Telemetry runtime removed.
- Change: TMO_RECORD_TELEMETRY_STALLS support dummied out - it had too much overhead to be useful.
- Change: TMOF_DONT_KILL_OTHER_SESSIONS is now ignored; Telemetry always behaves as if it was on, i.e. server never kills existing live sessions from an app when the same app reconnects.
- Change: Mac users, the Telemetry 2.1A runtime now requires OS X 10.7
- Enhancement: The runtime now supports 64-bit iOS.
- Enhancement: Significantly reduced Telemetry overhead - details depend on usage, but 2x-4x CPU time reduction is not uncommon.
- Enhancement: checked builds of Telemetry are now faster and un-checked builds now allow enabling TMO_OUTPUT_DEBUG_INFO.
- Enhancement: user-defined IO (via callbacks) is now officially supported.
- Enhancement: Telemetry now fully supports closing sessions mid-stream (even while other threads are using the context) and re-opening them later - see $ug_context_lifecycle in the docs for details.
- Enhancement: new TMO_BREAK_ON_WARNING to simplify tracking down causes of Telemetry API warnings.
- Enhancement: much lower CPU overhead and network bandwidth usage for context switch tracking on all platforms that support it.
- Enhancement: significantly reduced cost of call stack collection on Linux, OS X and iOS.
- Enhancement: increased size and improved hit rate of unique call stack cache, reducing network bandwidth.
- Enhancement: reduced size of zone events in network stream; typically 15-25% smaller.
- Enhancement: filtered zones are now cheaper.
- Enhancement: improved network IO patterns: Telemetry now frequently sends data in medium-sized blocks, instead of rarely sending very large ones.
- Enhancement: explicitly detect and warn about incorrect use of format strings.
- Enhancement: reduced processing time on IO ("telemetry") thread.
- Bugfix: gracefully handle the case when Telemetry context string table overflows (don't just report all further strings as "unknown")
- Bugfix: fix race condition in code that determines loaded modules/shared objects (triggered by opening two Telemetry contexts at once)
Visualizer
- Change: status bar is now always shown.
- Enhancement: width of track headers is now resizeable.
- Enhancement: highlight long frames in zone view ruler.
- Enhancement: zone view ruler shows length of shortest/longest frame when multiple frames are grouped.
- Enhancement: improved text rendering quality.
- Enhancement: add "centered" windows for generated plots.
- Bugfix: fix Visualizer refusing to open sessions with less than 2 ticks in them.
- Bugfix: fix handling of sessions with no available frametime plot.
- Bugfix: don't draw thread tracks in zone view if there are no events for them.
- Bugfix: fix visually jarring disappearance of timespan tracks when there's no visible events for them in current view.
- Bugfix: fix zone sublabels (TMMF_ZONE_SUBLABEL) not being displayed.
- Bugfix: fix positioning of very wide or very tall tooltips.
- Bugfix: (OS X) fix frequent Visualizer crashes that started in 2.0P3 (long-standing bug exposed by switching from build with libstdc++ to libc++)
- Bugfix: (OS X) fix checkboxes not being toggled on double-clicks.
- Bugfix: (OS X) fix several symbolization bugs.
Server
- Change: update to SQLite 3.8.7.4, which brings performance improvements.
- Enhancement: lots of internal optimizations. Datasets typically process ~2.3x faster and take up 30% less space on disk.
- Enhancement: live mode updates views more regularly now.
- Bugfix: fix server crashes on leaked tmEnter without matching tmLeave.
- Bugfix: (Linux) fix a bug where some sessions stored on a Linux server would not show in the Visualizer.
- Bugfix: fix bug where incorrect plots far in the future would be generated from TMZF_PLOT_TIME zones that were open across tick boundaries.
- Bugfix: fix double-enumeration of active live sessions in certain cases.
Other
- Enhancement: improved tmxgpu implementation for PS4 and Wii U.