ExactReallocateOnly

Cache.ExactReallocateOnly property

الحصول على أو تعيين قيمة تشير إلى ما إذا كانت إعادة التخصيص يجب أن تكون دقيقة أم لا. إذا كانت إعادة التخصيص غير دقيقة ، فيجب أن يكون الأداء أعلى.

public static bool ExactReallocateOnly { get; set; }

Property_Value

حقيقي إذا كانت إعادة التخصيص دقيقة ؛ خلاف ذلك،خاطئة .

ملاحظات

ستؤدي عملية إعادة التخصيص الدقيقة إلى إعادة تخصيص ذاكرة إضافية فقط إلى الحد الأعلى المحدد . عند تجاوز الحد الأعلى للذاكرة الداخلية أثناء إعادة التخصيص ، سيتم نسخ البيانات المخزنة مؤقتًا إلى القرص إن أمكن. تم طرح استثناء مناسب. يجب أن يكون الأداء أعلى إذا تم إيقاف تشغيل هذا الخيار حيث لن يتم إجراء نسخ إضافي إذا أمكن ، ولكن هذا قد يؤدي أيضًا إلى تجاوز الحدود القصوى المحددة للذاكرة أو القرص.

أمثلة

يوضح هذا المثال استخدام Aspose.Imaging.Cache

[C#]

// بشكل افتراضي ، يتم تعيين مجلد ذاكرة التخزين المؤقت على دليل temp المحلي للمستخدم.
// يمكنك أيضًا تحديد مجلد ذاكرة تخزين مؤقت آخر غير الافتراضي مثل ما يلي:
// Cache.CacheFolder = @ "D: \\ MyTemp" ;

// الوضع التلقائي مرن وفعال
Aspose.Imaging.Cache.CacheType = Aspose.Imaging.CacheType.Auto;

// القيمة الافتراضية هي 0 ، مما يعني أنه لا يوجد حد أعلى
Aspose.Imaging.Cache.MaxDiskSpaceForCache = 1073741824; // 1 جيجا
Aspose.Imaging.Cache.MaxMemoryForCache = 1073741824; // 1 جيجا

// لا يوصى بتغيير الخاصية التالية لأنها قد تؤثر بشكل كبير على الأداء
Aspose.Imaging.Cache.ExactReallocateOnly = false;

// في أي وقت يمكنك التحقق من عدد البايتات المخصصة حاليًا للذاكرة أو القرص 
// cache عن طريق فحص الخصائص التالية
long l1 = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
long l2 = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;

// قم ببعض معالجة الصور على النحو التالي
Aspose.Imaging.ImageOptions.GifOptions options = new Aspose.Imaging.ImageOptions.GifOptions();
options.Palette = new ColorPalette(new Aspose.Imaging.Color[] { Aspose.Imaging.Color.Red, Aspose.Imaging.Color.Blue, Aspose.Imaging.Color.Black, Aspose.Imaging.Color.White });
options.Source = new Aspose.Imaging.Sources.StreamSource(new System.IO.MemoryStream(), true);
using (Aspose.Imaging.RasterImage image = (Aspose.Imaging.RasterImage)Aspose.Imaging.Image.Create(options, 100, 100))
{
    Aspose.Imaging.Color[] pixels = new Aspose.Imaging.Color[10000];
    for (int i = 0; i < pixels.Length; i++)
    {
        pixels[i] = Aspose.Imaging.Color.White;
    }

    image.SavePixels(image.Bounds, pixels);

    // بعد تنفيذ الكود أعلاه ، سيتم تخصيص 40000 بايت في الذاكرة.
    long diskBytes = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
    long memoryBytes = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;
}

// يمكن استخدام خصائص التخصيص للتحقق مما إذا كان قد تم التخلص من جميع كائنات Aspose.Imaging بشكل صحيح.
// في حالة نسيان استدعاء التخلص من بعض الكائنات ، فستكون قيم ذاكرة التخزين المؤقت مختلفة عن 0.            
l1 = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
l2 = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;

أنظر أيضا