diff options
author | Zoltan Varga <vargaz@gmail.com> | 2017-01-10 01:37:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-10 01:37:57 +0300 |
commit | 2ba6bcbc48f8b4e145f9ad450fef8d411b728a8e (patch) | |
tree | 6492f5adecb290d1fc9c76c4304f8a9fb96c2aac /man | |
parent | 0007e99a87229eab592c179430c4fe3d885e1363 (diff) |
[aot] Rewrite the AOT profiler. (#4176)
* [aot] Rewrite the AOT profiler.
The AOT profiler is used to collect the methods/instances used at runtime.
Usage:
* mono --profile=aot:output=out.aotprof <app>
* mono --aot=profile=out.aotprof <assembly>
The first command will run <app>, collecting the list of methods it uses into the out.aotprof file.
The second command passes the profile file to the AOT compiler to have it generate additional generic instances.
* [docs] Add a section for AOT profiling to the mono(1) man page.
* [build] Collect AOT profile info from building mscorlib in the build profile, and use it when aot-ing the csc assemblies.
* [runtime] Add missing mono-profiler-aot.h file.
* [runtime] Tidy up usage of MONO_PROFILER_API.
* [aot] Improve error handling in the aot profiler.
* [aot] Improve error handling, add more diagnostics.
Diffstat (limited to 'man')
-rw-r--r-- | man/mono.1 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/man/mono.1 b/man/mono.1 index bea38842eb3..ef13ea04f68 100644 --- a/man/mono.1 +++ b/man/mono.1 @@ -853,6 +853,26 @@ The offsets displayed are IL offsets. .PP A more powerful coverage tool is available in the module `monocov'. See the monocov(1) man page for details. +.SH AOT PROFILING +You can improve startup performance by using the AOT profiler. +.PP +Typically the AOT compiler (\fBmono --aot\fR) will not generate code +for generic instantiations. To solve this, you can run Mono with the +AOT profiler to find out all the generic instantiations that are used, +and then instructing the AOT compiler to produce code for these. +.PP +This command will run the specified app.exe and produce the +\fBout.aotprof\fR file with the data describing the generic +instantiations that are needed: +.nf + $ mono --profile=aot:output=out.aotprof app.exe +.fi +.PP +Once you have this data, you can pass this to Mono's AOT compiler to +instruct it to generate code for it: +.nf + $ mono --aot=profile=out.aotprof +.fi .SH DEBUGGING AIDS To debug managed applications, you can use the .B mdb |