Needless to say, if your code relies on platformspecific
libraries or calls any platform-specific APIs, it will only run on that particular
architecture.
JIT compiling means a performance hit is incurred each time you run your application.
The way JIT works, only the code being executed is compiled, and the loader creates a stub for
any unused methods. Then when a previously unused method is called, the stub triggers the
JIT compiler to convert that stub into native code. Once code is JIT-compiled, the CLR holds
onto it and simply executes the native version the next time it??™s needed. Although the JIT
compilation phase adds some complexity and has an initial runtime performance penalty
associated with it, the benefits of a JIT compiler coupled with the CLR can outweigh the time
penalty of JIT compiling because
??? Managed applications can consume far less memory because, in general, IL code has a
smaller footprint than native code. In other words, the ???working set??? of managed applications
is normally smaller than native applications.
??? Only code that is called gets JIT-compiled.
??? The CLR keeps track of the frequency of calls. If it sees that a JIT-compiled code section
has not been called in a long time, it can free the space occupied by it.
Pages:
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171