Ticket #847 (new task)

Opened 4 years ago

profiling in Cocoa-based IDE

Reported by: rme Owned by: rme
Priority: normal Milestone:
Component: IDE Version: trunk
Keywords: Cc: svspire

Description

Implement a way to make it fairly straightforward to use some sort of profiling tool with the Cocoa-based IDE.

CCL has provided ways to use Shark with varying degrees of success, though Shark has been a bit of a moving target. Currently, it's necessary to save a heap image in a special way (as a shared library) in order for Shark to identify lisp function names. The IDE's custom of prepending a lisp kernel binary to the heap image interferes with this, so the IDE build process needs to be changed to leave the kernel and heap image separate. (And maybe the lisp kernel needs to be changed to know how to find the image file, too.)

In Xcode 4, Shark has apparently been replaced by Instruments, so that might affect what we need to do.

Another possible tool might be dtrace, but this approach would require instrumenting functions with probes. See, for example,  http://dtrace.org/blogs/ahl/2006/05/08/user-land-tracing-gets-better-and-better/

This (dtrace) could be independently interesting; perhaps compiling a function with certain optimization settings like (DEBUG 2) or something would insert the probes.

Note: See TracTickets for help on using tickets.