On Fri, 17 Oct 2014 at 04:39:33, Matthew Wynn wrote:
After upgrading to imagemagick 6.8.9.8-1, I've found it to be a lot slower than 6.8.9.7-1. I only get this issue when downloading from the repositories or using the PKGBUILD, not when compiling using the instructions at imagemagic.org.
I've discussed the issue with the ImageMagick developers, which you can find at http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=26369&sid=a29400f51bd723e98da6b74c0819e9b3. Even when trying to convert a 500x500 image to 100x100, it appears that an image that is 2048x1536 is created.
I've tried this on multiple Arch machines with the same result.
Anatol and I were able to reproduce this issue. It seems to be related to __memcpy_avx_unaligned() in glibc which means that it only occurs on architectures with the AVX extension. If you have a look at the memcpy-avx-unaligned.S source code [1], you will notice that there are several branches that copy blocks of different sizes. Now, for some reason, 6.8.9.8-1 always (or almost always) picks the L(less_32bytes) branch which means that only small blocks are copied, while 6.8.9.7-1 copies larger blocks. I do not have the time to debug this in detail but maybe you can add this information to the upstream report? Regards, Lukas [1] https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=sysdeps/x86_64/multia...