ExactReallocateOnly

Cache.ExactReallocateOnly property

Hämtar eller sätter ett värde som indikerar om omfördelningen ska vara exakt eller inte. Om omfördelningen inte är exakt bör prestandan vara högre.

public static bool ExactReallocateOnly { get; set; }

Fastighetsvärde

Sann om omfördelningen är exakt; annat,falsk .

Anmärkningar

Den exakta omallokeringen kommer att utföra omallokering av ytterligare minne endast upp till den angivna övre gränsen. När den övre gränsen för in-memory passerar under omallokering kommer cachad data att kopieras till disk om möjligt. När den övre gränsen för diskminne passerar under omallokering, lämpligt undantag kastas. Prestanda bör vara högre om det här alternativet är avstängt eftersom ingen ytterligare kopiering kommer att utföras om möjligt, men detta kan också leda till att övre gränser som anges för minne eller disk passerar.

Exempel

Detta exempel visar användningen av Aspose.Imaging.Cache

[C#]

// Som standard är cachemappen inställd på användarens lokala temporära katalog.
// Du kan också ange en annan cachemapp än standard som följande:
// Cache.CacheFolder = @"D:\\MyTemp";

// Autoläget är flexibelt och effektivt
Aspose.Imaging.Cache.CacheType = Aspose.Imaging.CacheType.Auto;

// Standardvärdet är 0, vilket betyder att det inte finns någon övre gräns
Aspose.Imaging.Cache.MaxDiskSpaceForCache = 1073741824; // 1 gigabyte
Aspose.Imaging.Cache.MaxMemoryForCache = 1073741824; // 1 gigabyte

// Det rekommenderas inte att ändra följande egenskap eftersom det i hög grad kan påverka prestandan
Aspose.Imaging.Cache.ExactReallocateOnly = false;

// Du kan när som helst kontrollera hur många byte som för närvarande är allokerade för minne eller disk 
// cache genom att undersöka följande egenskaper
long l1 = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
long l2 = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;

// Gör lite bildbearbetning enligt nedan
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);

    // efter exekvering av koden ovan kommer det att tilldelas 40000 byte i minnet.
    long diskBytes = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
    long memoryBytes = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;
}

// Allokeringsegenskaperna kan användas för att kontrollera om alla Aspose.Imaging-objekt var korrekt bortskaffade.
// Om du har glömt att anropa dispose på något objekt kommer cachevärdena att vara annorlunda än 0.            
l1 = Aspose.Imaging.Cache.AllocatedDiskBytesCount;
l2 = Aspose.Imaging.Cache.AllocatedMemoryBytesCount;

Se även