/// <param name="memoryModel">MemoryModel to use for primitive object sizes. /// </param> /// <param name="checkInterned">check if Strings are interned and don't add to size /// if they are. Defaults to true but if you know the objects you are checking /// won't likely contain many interned Strings, it will be faster to turn off /// intern checking. /// </param> public RamUsageEstimator(MemoryModel memoryModel, bool checkInterned) { this.memoryModel = memoryModel; this.checkInterned = checkInterned; // Use Map rather than Set so that we can use an IdentityHashMap - not // seeing an IdentityHashSet seen = new System.Collections.Hashtable(64); // {{Aroush-2.9}} Port issue; need to mimic java's IdentityHashMap equals() through C#'s Equals() this.refSize = memoryModel.GetReferenceSize(); this.arraySize = memoryModel.GetArraySize(); this.classSize = memoryModel.GetClassSize(); }
/// <param name="memoryModel">MemoryModel to use for primitive object sizes. /// </param> /// <param name="checkInterned">check if Strings are interned and don't add to size /// if they are. Defaults to true but if you know the objects you are checking /// won't likely contain many interned Strings, it will be faster to turn off /// intern checking. /// </param> public RamUsageEstimator(MemoryModel memoryModel, bool checkInterned) { this.memoryModel = memoryModel; this.checkInterned = checkInterned; // Use Map rather than Set so that we can use an IdentityHashMap - not // seeing an IdentityHashSet seen = new Dictionary <object, object>(64, IdentityStructComparer <object> .Default); this.refSize = memoryModel.ReferenceSize; this.arraySize = memoryModel.ArraySize; this.classSize = memoryModel.ClassSize; }
/// <param name="memoryModel">MemoryModel to use for primitive object sizes. /// </param> /// <param name="checkInterned">check if Strings are interned and don't add to size /// if they are. Defaults to true but if you know the objects you are checking /// won't likely contain many interned Strings, it will be faster to turn off /// intern checking. /// </param> public RamUsageEstimator(MemoryModel memoryModel, bool checkInterned) { this.memoryModel = memoryModel; this.checkInterned = checkInterned; // Use Map rather than Set so that we can use an IdentityHashMap - not // seeing an IdentityHashSet seen = new IdentityDictionary<object, object>(64); this.refSize = memoryModel.ReferenceSize; this.arraySize = memoryModel.ArraySize; this.classSize = memoryModel.ClassSize; }
/// <param name="memoryModel">MemoryModel to use for primitive object sizes. /// </param> public RamUsageEstimator(MemoryModel memoryModel):this(memoryModel, true) { }
/// <param name="memoryModel">MemoryModel to use for primitive object sizes. /// </param> public RamUsageEstimator(MemoryModel memoryModel) : this(memoryModel, true) { }