Beispiel #1
0
        private OpportunisticIntern()
        {
            _smallMruSize       = AssignViaEnvironment("MSBUILDSMALLINTERNSIZE", 50);
            _largeMruSize       = AssignViaEnvironment("MSBUILDLARGEINTERNSIZE", 100);
            _hugeMruSize        = AssignViaEnvironment("MSBUILDHUGEINTERNSIZE", 100);
            _smallMruThreshold  = AssignViaEnvironment("MSBUILDSMALLINTERNTHRESHOLD", 50);
            _largeMruThreshold  = AssignViaEnvironment("MSBUILDLARGEINTERNTHRESHOLD", 70);
            _hugeMruThreshold   = AssignViaEnvironment("MSBUILDHUGEINTERNTHRESHOLD", 200);
            _ginormousThreshold = AssignViaEnvironment("MSBUILDGINORMOUSINTERNTHRESHOLD", 8000);

            _interner = _useLegacyInterner
               ? (IInternerImplementation) new BucketedPrioritizedStringList(gatherStatistics: false, _smallMruSize, _largeMruSize, _hugeMruSize,
                                                                             _smallMruThreshold, _largeMruThreshold, _hugeMruThreshold, _ginormousThreshold, _useSimpleConcurrency)
               : (IInternerImplementation) new WeakStringCacheInterner(gatherStatistics: false);
        }
Beispiel #2
0
 /// <summary>
 /// Turn on statistics gathering.
 /// </summary>
 internal void EnableStatisticsGathering()
 {
     if (_useLegacyInterner)
     {
         // Statistics include several 'what if' scenarios such as doubling the size of the MRU lists.
         _interner       = new BucketedPrioritizedStringList(gatherStatistics: true, _smallMruSize, _largeMruSize, _hugeMruSize, _smallMruThreshold, _largeMruThreshold, _hugeMruThreshold, _ginormousThreshold, _useSimpleConcurrency);
         _whatIfInfinite = new BucketedPrioritizedStringList(gatherStatistics: true, int.MaxValue, int.MaxValue, int.MaxValue, _smallMruThreshold, _largeMruThreshold, _hugeMruThreshold, _ginormousThreshold, _useSimpleConcurrency);
         _whatIfDoubled  = new BucketedPrioritizedStringList(gatherStatistics: true, _smallMruSize * 2, _largeMruSize * 2, _hugeMruSize * 2, _smallMruThreshold, _largeMruThreshold, _hugeMruThreshold, _ginormousThreshold, _useSimpleConcurrency);
         _whatIfHalved   = new BucketedPrioritizedStringList(gatherStatistics: true, _smallMruSize / 2, _largeMruSize / 2, _hugeMruSize / 2, _smallMruThreshold, _largeMruThreshold, _hugeMruThreshold, _ginormousThreshold, _useSimpleConcurrency);
         _whatIfZero     = new BucketedPrioritizedStringList(gatherStatistics: true, 0, 0, 0, _smallMruThreshold, _largeMruThreshold, _hugeMruThreshold, _ginormousThreshold, _useSimpleConcurrency);
     }
     else
     {
         _interner = new WeakStringCacheInterner(gatherStatistics: true);
     }
 }