We have an ASP.NET / Web API site that accepts uploads and creates thumbnails from them. I have pieced-together various optimization ideas from here and in your Documentation. Some of those include things like...
The AppPool is set to use four processes; we receive many, many files so more threads, more memory, etc., seems necessary. This is in a virtualized server and "ImageMagick.MagickNET.UseOpenCL" reports "true", but I can't confirm or deny if OpenCL is being used or not. If so, it would only be on the processor level.
Anyway, is there anything else I should know about how Magick.NET instantiates itself in this setup? Is the object static? Does the Parallel call run effectively in .NET thread pools?
Some of this is subjective and/or hard to know, but any pointers you have would be great. Thanks!
settings.SetDefine(MagickFormat.Jpeg, "size", "1400x1400");
when reading the file and using "Strip()" on the image before creating thumbnails. Also, we use Parallel.ForEach since it creates more than one thumbnail for each image. Finally, it uses MagickGeometry geo = new MagickGeometry(longsidesection[key] + "x" + longsidesection[key]);
tempimg.Resize(geo);
as part of the Parallel code.The AppPool is set to use four processes; we receive many, many files so more threads, more memory, etc., seems necessary. This is in a virtualized server and "ImageMagick.MagickNET.UseOpenCL" reports "true", but I can't confirm or deny if OpenCL is being used or not. If so, it would only be on the processor level.
Anyway, is there anything else I should know about how Magick.NET instantiates itself in this setup? Is the object static? Does the Parallel call run effectively in .NET thread pools?
Some of this is subjective and/or hard to know, but any pointers you have would be great. Thanks!