Signposts for performance: alpha release of RouteMap

I have previously looked at Signposts, newly introduced into the unified log in recent versions of High Sierra and Mojave. These are valuable tools for anyone writing code or scripting for macOS, as they can provide detailed insight into performance and more.

You can already harvest and analyse Signposts using Apple’s Xcode 10ß SDK, and my own log browser Consolation 3. However, the latter is a general-purpose browser which is not geared to performance analysis, and Xcode’s instrument is fairly basic and constrained.

I am now developing a new tool specifically to get more out of Signposts, including pseudo-Signposts which can be written to the log in Sierra as well: RouteMap.

I am delighted to offer an initial alpha release of RouteMap, which gives very basic functionality across Sierra, High Sierra, and Mojave. Please look at it, try its demo out, experiment with writing Signposts from my command tool Blowhole, and from your own code. Let me know whether it is heading in the right direction, and what you’d like to see it do.

The best way to see what it does (so far) is to run a test using an app which writes plenty of Signposts – such as Whither, which is bundled with it.

Open the two apps, and get Whither to traverse some directories, writing Signposts as it goes. Then set RouteMap to harvest Signposts for the last couple of minutes, and click on the Get log button. You will then see those listed in the text box at the right. In a future version, Signposts will be displayed in the left side instead, with one of a range of bar charts showing performance on the right, where the text is currently displayed.

routemap03

This works equally well in Sierra, where the log doesn’t itself support Signposts.

routemap02

And in High Sierra and Mojave, it works even better.

You don’t have to enter the Subsystem in many cases, at least in Sierra, where other apps won’t be writing pseudo-Signpost entries in the log. In High Sierra and Mojave, you’ll see that the system already writes quite a lot of Signposts, and it is useful to enter the Subsystem to limit the harvest. To get just those from Whither, for example, insert
co.eclecticlight.Whither
in the Subsystem box, then Get log again.

This alpha release seems very stable, and should run fine on Sierra, High Sierra, and Mojave. It’s available from here: routemap10a1
and from Downloads above.