Slow on some server

Started by gsoucy, November 05, 2024, 05:49:33 PM

Previous topic - Next topic

gsoucy

Hello

I am using exiftool to transfer all metadata from a JPG to a PNG image. In my test case, both images are 45 Mpixels ( JPEG=14 MB  and PNG= 36 MB).

I run exiftools with :

exiftool -TagsFromFile a.jpg "-all:all>all:all" a.png

I ran this command on 4 servers and got the following timings:

Machine A  :  0.5 sec
Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz
CentOS Linux release 7.9.2009 (Core)
16 GB ram

Machine B  : 3 sec
Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
Rocky Linux release 8.9 (Green Obsidian)
128 GB ram

Machine C  : 13 sec
Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz   (AWS C5.xlarge)
CentOS Linux release 7.9.2009 (Core)
8 GB RAM

Machine D  : 6 sec
Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
CentOS Linux release 7.9.2009 (Core)
32 GB RAM

The timing difference between the machine is huge. Is this a known issue ? Is there a problem with the Xeon CPU when used with exiftool ?

I thought that exiftool was not re-coding the images array and only modifying the header/metadata.

Is there a way to speed up the process ?

Thank you!

Gilbert

Phil Harvey

Hi Gilbert,

ExifTool verifies the PNG image data CRC checksums when writing, which slows things down immensely for large images.  Add the -fast option (API FastScan) to ignore these checksums.  On my system here this shortens the processing time for a similar command from 16 seconds down to 0.53 seconds.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

gsoucy

Wonderful! On one of the machines, it went from 6 to 0.6 sec. In the 'worst' case, it went from 3 to 1 sec.

Thank you!