You can save trace files. But to make is reasonable to interpret those results at a future date, it's useful to insert "flags" in your trace, to mark significant events, so that you can tell what the app was doing at notable points in the trace.
In the past, I'd suggest the inclusion of flags inserted programmatically, so you have some basis for comparison in the future, but this is broken in iOS7. But if you're running this on the simulator with iOS prior to 7.0, you can:
Add DTPerformanceSession.framework
to your project;
In your source:
#import <DTPerformanceSession/DTSignalFlag.h>
Then, in your source, you can programmatically insert flags in Instruments (when running on pre iOS7 simulator):
// Point flag (just an event in time)
DTSendSignalFlag("some event", DT_POINT_SIGNAL, TRUE);
// Start flag (to mark the start of something)
DTSendSignalFlag("start some intensive process", DT_START_SIGNAL, TRUE);
// End flag (to mark the end of something)
DTSendSignalFlag("end some intensive process", DT_END_SIGNAL, TRUE);
Remove DTPerformanceSession.framework
from your project (the process of adding it let Xcode resolve the header, but you don't want to keep it in your iOS project or else you'll get linking errors).
You might want to keep a copy of the respective archives so that you can resymbolicate the trace file at some future date.
Obviously, if profiling in iOS7, you can add flags yourself, manually, but it's just not as elegant or rigorous as flagging programmatically.