C #Генератор изображений -Низкая производительность

Недавно я работал над генератором динамических изображений aspx на C #, который, по сути, берет значение строки запроса из «t» и записывает эту строку в изображение, а затем возвращает JPG.

Локально работало без нареканий, а на тестовом сервере -изображения возвращались моментально.

А вот при нагрузке -сбалансированных живых серверов иногда работает нормально. Но чаще всего время ожидания / занимает до минуты, чтобы вернуть изображение.

Я подумал, что хотел бы спросить здесь, есть ли в моем коде что-то очевидное, что могло бы вызвать проблемы, прежде чем я обращусь к операторам сервера, чтобы спросить, почему это не работает должным образом.

Ниже приведена очень оптимизированная версия генератора (, которая также имеет точно такие же проблемы с тайм-аутом )

protected void Page_Load(object sender, EventArgs e)
{

    // Set global stage dimensions
    const int stageWidth = 500;
    const int stageHeight = 200;

    // Create Bitmap placeholder for new image       
    Bitmap createdImage = new Bitmap(stageWidth, stageHeight);

    // Draw new blank image
    Graphics imageCanvas = Graphics.FromImage(createdImage);

    // Add text
    if (!string.IsNullOrEmpty(Request.QueryString["t"]))
    {
        string imageText = Uri.UnescapeDataString(Request.QueryString["t"]).Trim();
        Font font = new Font("Arial", 22);
        imageCanvas.DrawString(imageText, font, Brushes.White, 0, 0);            
    }

    // Save
    MemoryStream memStream = new MemoryStream();
    createdImage.Save(memStream, ImageFormat.Jpeg);
    imageCanvas.Dispose();
    createdImage.Dispose();

    // Set filename / image format
    Response.AppendHeader("content-disposition", "filename=MyImage");
    Response.ContentType = "image/jpeg";        

    // Send output to client
    memStream.WriteTo(Response.OutputStream);
    memStream.Dispose();
    Response.Flush();
}
-. 121 ---1918128- Как эффективно вставлять и извлекать UUID в Core Data Я ищу эффективный способ хранения и поиска UUID в Core Data. Эти UUID генерируются многими устройствами iOS в распределенной системе. Каждое из этих устройств может хранить около 20 -50 тыс. UUID. Это...

Я ищу эффективный способ хранения и поиска UUID в Core Data. Эти UUID генерируются многими устройствами iOS в распределенной системе. Каждое из этих устройств может хранить около 20 -50 тыс. UUID.

Очевидно, что хранение UUID в виде строки в Core Data снизит эффективность его индексации. Но после серии исследований я обнаружил, что сохранение UUID в виде двоичных данных в Core Data (и его индексирование )может быть менее эффективным, чем хранение его в виде строки .

Поскольку нет BINARY -подобного или VARBINARY -подобного типа данных в SQL, он поддерживается. Я предполагаю, что любой тип данных Binary Data в Core Data хранится как BLOB в SQLit.Поскольку BLOB может быть самым медленным типом данных для индексации, это плохо повлияет на производительность.

Так может ли кто-нибудь помочь ответить, есть ли более эффективный способ хранения UUID в основных данных?

19
задан Cable W 5 July 2012 в 02:52
поделиться