This is a good question and I wanted to answer it when I first saw it submitted way back in January — sorry I never got around to it!
The mechanism I’ve used is as simple as manually profiling your app (Time Profiler in Instruments). Then look for time on the main thread. Any time over about 10ms, especially if you know it will happen within a single runloop (e.g. call stack growing and then collapsing back to the base) will cause frame drops for scrolling, gestures, and physics-simulating animations.
The FPS measurement is not very useful because you may be holding a pretty high average FPS, but then drop a bunch of frames together; or only drop one frame per second, but it still feels bad. Basically FPS measurement does not correlate well with the human perception of the user experience.
Please feel free to post a topic on our Google Group for any further questions or discussion — I’d love to help! https://groups.google.com/forum/#!forum/asyncdisplaykit