As you mentioned, Performance testing for iOS apps is possible with the Instruments, distributed by Apple alongside Xcode. As always with Apple, you have to use it.
This is the exact approach Appium uses: since version 1.8 extends mobile: command
interface with iOS app profiling and gets you back Instruments .trace file:
HashMap<String, Object> args = new HashMap<>();
args.put("timeout", 60000);
args.put("pid", "current");
args.put("profileName", "Time Profiler");
driver.executeScript("mobile: startPerfRecord", args);
// perform any actions with Appium in your App
args = new HashMap<>();
args.put("profileName", "Time Profiler");
String b64Zip = (String)driver.executeScript("mobile: stopPerfRecord", args);
byte[] bytesZip = Base64.getMimeDecoder().decode(b64Zip);
FileOutputStream stream = new FileOutputStream(traceZip);
stream.write(bytesZip);
You can read more in details here
To understand better trace log interpreting, you may check the following open source projects like Traced or TraceUtility. This answer is really helpful