Cache

Cache class

Содержит настройки кеша.

public static class Cache

Характеристики

ИмяОписание
static AllocatedDiskBytesCount { get; }Получает количество выделенных байтов на диске.
static AllocatedMemoryBytesCount { get; }Получает количество выделенных байтов в памяти.
static CacheFolder { get; set; }Получает или задает папку кэша.
static CacheType { get; set; }Получает или задает используемую схему кэширования.
static ExactReallocateOnly { get; set; }Получает или задает значение, указывающее, должно ли перераспределение быть точным или нет. Если перераспределение не точное, производительность должна быть выше.
static MaxDiskSpaceForCache { get; set; }Получает или задает максимальное доступное дисковое пространство для кэша. Указанное значение равно количеству мегабайт.
static MaxMemoryForCache { get; set; }Получает или задает максимально доступную память для кэша в памяти. Указанное значение равно количеству мегабайт.

Методы

ИмяОписание
static SetDefaults()УстанавливаетCache настройки по умолчанию.

Примеры

Этот пример демонстрирует использование Aspose.Imaging.Cache.

[C#]

// По умолчанию папка кеша устанавливается в локальный временный каталог пользователя.
// Вы также можете указать другую папку кеша, отличную от стандартной, например:
// 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;

// В любой момент вы можете проверить, сколько байт в данный момент выделено для памяти или диска 
// кешируем, изучая следующие свойства
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.
// Если вы забыли вызвать dispose для какого-либо объекта, значения кеша будут отличаться от 0.            
l1 = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
l2 = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;

Смотрите также