You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/core/deploying/ready-to-run.md
+12-14Lines changed: 12 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ ms.date: 09/21/2020
11
11
12
12
R2R binaries improve startup performance by reducing the amount of work the just-in-time (JIT) compiler needs to do as your application loads. The binaries contain similar native code compared to what the JIT would produce. However, R2R binaries are larger because they contain both intermediate language (IL) code, which is still needed for some scenarios, and the native version of the same code. R2R is only available when you publish an app that targets specific runtime environments (RID) such as Linux x64 or Windows x64.
13
13
14
-
To compile your project as ReadyToRun, the application must be published with the PublishReadyToRun property set to true.
14
+
To compile your project as ReadyToRun, the application must be published with the PublishReadyToRun property set to `true`.
15
15
16
16
There are two ways to publish your app as ReadyToRun:
17
17
@@ -21,7 +21,7 @@ There are two ways to publish your app as ReadyToRun:
- Add the `<PublishReadyToRun>` setting to your project.
27
27
@@ -39,33 +39,31 @@ There are two ways to publish your app as ReadyToRun:
39
39
40
40
## Impact of using the ReadyToRun feature
41
41
42
-
Ahead-of-time compilation has complex performance impact on application performance, which may be difficult to predict. In general, the size of an assembly will grow to between two to three times larger. This increase in the physical size of the file may reduce the performance of loading the assembly from disk, and increase working set of the process. However, in return the number of methods compiled at runtime is typically reduced substantially. The result is that most applications that have large amounts of code receive large performance benefits from enabling ReadyToRun. Applications, which have small amounts of code will likely not experience a significant improvement from enabling ReadyToRun, as the .NET runtime libraries have already been precompiled with ReadyToRun.
42
+
Ahead-of-time compilation has complex performance impact on application performance, which can be difficult to predict. In general, the size of an assembly will grow to between two to three times larger. This increase in the physical size of the file may reduce the performance of loading the assembly from disk, and increase working set of the process. However, in return the number of methods compiled at runtime is typically reduced substantially. The result is that most applications that have large amounts of code receive large performance benefits from enabling ReadyToRun. Applications that have small amounts of code will likely not experience a significant improvement from enabling ReadyToRun, as the .NET runtime libraries have already been precompiled with ReadyToRun.
43
43
44
-
The startup improvement discussed here applies not only to application startup, but also to the first use of any code in the application. For instance, ReadyToRun can be used to reduce the response latency of the first use of Web API in an ASP.NET application.
44
+
The startup improvement discussed here applies not only to application startup, but also to the first use of any code in the application. For instance, ReadyToRun can be used to reduce the response latency of the first use of Web API in an ASP.NET application.
45
45
46
46
### Interaction with tiered compilation
47
47
48
-
Ahead-of-time generated is not as highly optimized as code produced by the JIT. To address this issue, tiered compilation will replace commonly used ReadyToRun methods with JIT-generated methods.
48
+
Ahead-of-time generated code is not as highly optimized as code produced by the JIT. To address this issue, tiered compilation will replace commonly used ReadyToRun methods with JIT-generated methods.
49
49
50
50
## How is the set of precompiled assemblies chosen?
51
51
52
52
The SDK will precompile the assemblies that are distributed with the application. For self-contained applications, this set of assemblies will include the framework. C++/CLI binaries are not eligible for ReadyToRun compilation.
53
53
54
54
## How is the set of methods to precompile chosen?
55
55
56
-
The compiler will attempt to pre-compile as many methods as it can. Howevervarious reasons it is not expected that using the ReadyToRun feature will result in preventing the JIT from executing.
56
+
The compiler will attempt to pre-compile as many methods as it can. However, for various reasons, it's not expected that using the ReadyToRun feature will prevent the JIT from executing. Such reasons may include, but are not limited to:
57
57
58
-
Such reasons may include, but are not limited to:
59
-
60
-
- Use of generic types defined in separate assemblies
61
-
- Interop with native code
62
-
- Use of hardware intrinsics that the compiler cannot prove are safe to use on a target machine
63
-
- Certain unusual IL patterns
64
-
- Dynamic method creation via reflection, or LINQ
58
+
- Use of generic types defined in separate assemblies.
59
+
- Interop with native code.
60
+
- Use of hardware intrinsics that the compiler cannot prove are safe to use on a target machine.
61
+
- Certain unusual IL patterns.
62
+
- Dynamic method creation via reflection or LINQ.
65
63
66
64
## Cross platform/architecture restrictions
67
65
68
-
For some SDK platforms, the ReadyToRun compiler is capable of cross-compiling for other target platforms. Supported compilation targets are described in the table below.
66
+
For some SDK platforms, the ReadyToRun compiler is capable of cross-compiling for other target platforms. Supported compilation targets are described in the following table.
0 commit comments