Just nu i M3-nätverket
Gå till innehåll

MONO: långsam bild/filhantering


Rest man Klaymen

Rekommendera Poster

Rest man Klaymen

Hej!

 

Jag har konverterat ett projekt till att köra på Mono (2.0) men framför allt koden för att hämta bilder från hårddisk, skala om dem och skicka till output går mycket långsammare än förut när jag körde projektet på MS.NET.

 

Här är koden:

System.Drawing.Image fullSizeImg = System.Drawing.Image.FromStream(new FileStream(filePath, FileMode.Open, FileAccess.Read), true, false);

int size = 100;
int origWidth = fullSizeImg.Width;
int origHeight = fullSizeImg.Height;

Bitmap returnImg = new Bitmap(fullSizeImg, Convert.ToInt32(origWidth * ((float)size / (float)origHeight)), size);

Graphics oGraphics = Graphics.FromImage(returnImg);
oGraphics.DrawImage(fullSizeImg, 0, 0, Convert.ToInt32(origWidth * ((float)size / (float)origHeight)), size);
oGraphics.Dispose();

returnImg.Save(Response.OutputStream, ImageFormar.Jpeg);

 

Det är första raden, dvs att hämta bilden från disk, som tar längst tid (uppåt 0.5s för stora bilder). Detta gick många gånger snabbare på innan jag portade.

 

Jag kör på Ubuntu 9.04, därför har jag inte senaste versionen av Mono. Är det någon som vet om senaste versionen är snabbare på just detta (jag har kollat release notes men inte hittat något), eller om det finns något knep jag kan använda för att öka hastigheten? Det är varken servern eller disken som är långsam, med PHP går samma operation mycket snabbare.

 

Ett bonusproblem: att få till schysst bildkvalitet genom att manipulera ImageQuality eller AntiAliasing verkar heller inte ge några resultat alls. Nån som vet vad det kan bero på?

 

Tacksam för svar!

 

/ RMK

Jobbiga_färger.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...