CacheData

DataStreamSupporter.CacheData method

Met en cache les données et garantit qu’aucun chargement de données supplémentaire ne sera effectué à partir du sous-jacentDataStreamContainer .

public abstract void CacheData()

Exemples

L’exemple suivant montre comment la mise en cache des images affecte les performances. Dans le cas général, la lecture des données mises en cache est effectuée plus rapidement que la lecture des données non mises en cache.

[C#]

string dir = "c:\\temp\\";

// Charge une image à partir d'un fichier PNG.
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    // Mettez en cache toutes les données de pixel afin qu'aucun chargement de données supplémentaire ne soit effectué à partir du flux de données sous-jacent
    image.CacheData();

    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // La lecture de tous les pixels est assez rapide.
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
    for (int y = 0; y < image.Height; y++)
    {
        for (int x = 0; x < image.Width; x++)
        {
            int color = rasterImage.GetArgb32Pixel(x, y);
        }
    }

    stopwatch.Stop();
    System.Console.WriteLine("Reading all cached pixels took {0} ms.", stopwatch.ElapsedMilliseconds);
}

// Charger une image depuis un fichier PNG
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(dir + "sample.png"))
{
    System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
    stopwatch.Start();

    // La lecture de tous les pixels n'est pas aussi rapide que lors de la mise en cache
    Aspose.Imaging.RasterImage rasterImage = (Aspose.Imaging.RasterImage)image;
    for (int y = 0; y < image.Height; y++)
    {
        for (int x = 0; x < image.Width; x++)
        {
            int color = rasterImage.GetArgb32Pixel(x, y);
        }
    }

    stopwatch.Stop();
    System.Console.WriteLine("Reading all pixels without preliminary caching took {0} ms.", stopwatch.ElapsedMilliseconds);
}

// La sortie peut ressembler à ceci :
// La lecture de tous les pixels mis en cache a pris 1 500 ms.
// La lecture de tous les pixels sans mise en cache préalable a pris 150 000 ms.

Voir également