2014-09-18 14 views
7

Nella sorgente di riferimento .NET per la classe String, ci sono vari commenti che fanno riferimento a qualcosa chiamato EE.Che cosa significa l'acronimo EE nella fonte di riferimento .NET?

The first is on m_stringLength:

//NOTE NOTE NOTE NOTE 
//These fields map directly onto the fields in an EE StringObject. See object.h for the layout. 
// 
[NonSerialized]private int m_stringLength; 

It's found again again for .Empty:

// The Empty constant holds the empty string value. It is initialized by the EE during startup. 
// It is treated as intrinsic by the JIT as so the static constructor would never run. 
// Leaving it uninitialized would confuse debuggers. 
// 
//We need to call the String constructor so that the compiler doesn't mark this as a literal. 
//Marking this as a literal would mean that it doesn't show up as a field which we can access 
//from native. 
public static readonly String Empty; 

E 'anche il Length:

// Gets the length of this string 
// 
/// This is a EE implemented function so that the JIT can recognise is specially 
/// and eliminate checks on character fetchs in a loop like: 
///  for(int I = 0; I < str.Length; i++) str[i] 
/// The actually code generated for this will be one instruction and will be inlined. 

Oserei che potrebbe avere qualcosa a che fare con un E ngine o è E ESTERNA, ma mi piacerebbe un riferimento effettivo definire che cosa si tratta.

Che cosa significa "EE"?

+0

"motore di esecuzione", di solito. – vcsjones

+0

* Execution Engine * come in MSCOR ** EE ** .dll –

+0

Ha, avrei immaginato che fosse 'MSCoreE'. Non dovrebbero averlo etichettato come 'MSCoreEE.dll'. – FriendlyGuy

risposta

7

EE è l'acronimo di Execution Engine.

Microsoft Core Execution Engine (come trovato in mscoree.dll) è il bootstrapper che ogni programma .NET chiama per caricare il CLR ed eseguire il codice IL. È un pezzo di codice non gestito.

Problemi correlati