What factors affect the refresh performance of Reveal?

When you do a refresh of your application in Reveal it snapshots each and every view in your application, with and without each view's subviews. It effectively captures the bitmap for each view twice. That's how Reveal manages to render accurate 2D and 3D representations of your application's view hierarchy, but it comes at the cost of a lot of image transfers.

The time it takes to refresh your application is a factor of how many views are in the view hierarchy, how large the views are and how fast the network connection is between the iOS application and Reveal running on your Mac.

In the simulator this is usually quick because the connection between the simulator and Reveal is obviously very quick. When testing on device, factors such as the network speed, the complexity of the view hierarchy and the device you're testing on (retina or non-retina) can have a huge effect on refresh speed.

Note however that when you edit properties of a view in one of the inspectors Reveal tries to optimise the update by only doing a partial refresh. In this case it re-snapshots all subviews of the affected view and all parent views to try and capture any side effects. That can be a lot quicker than doing a full refresh, but it can still take some time to re-capture and transfer all those images depending on your environment.

Going forward, in addition to adding new feature to Reveal we will also be working to optimise performance across different scenarios.