Besteht die Möglichkeit, dem Decoder zu sagen: Dekoriere nur die Y-Plane und ignoriere U- und V-Komponente?
Leider nein, ich werde morgen jedoch libJpeg integrieren - evtl. gibt es dort die Möglichkeit dies zu konfigurieren.
Der Benchmark hat gezeigt, dass die eingesetzte Bibliothek nicht skaliert - zumindest nicht so wie sie derzeit konfiguriert und kompiliert ist.
An den Affinitäten und Prioritäten wurde nichts verändert... keine feste Zuordnung von Threads zu Prozessoren oder NUMA-Knoten.
Der Wert gibt die Anzahl der dekodierten Jpegs / Minute an.
Mango (
https://github.com/t0rakka/mango)
1: 696
2: 1002
4: 1204
8: 1207
16: 863
32: 784
64: 840
128: 824
nanoJpeg (
http://www.emix8.org/static.php?page=nanoJpeg)
1: 415
2: 822
4: 1633
8: 3095
16: 5316
32: 7806
64: 7627
128: 7202
nanoJpeg ist nun nicht gerade für Performance bekannt, jedoch skaliert es wesentlich besser.
Bei 1-2 Threads hat Mango noch die Nase vorn, danach dreht sich das Bild gravierend um.
Mango kommt über 50%, scheint aber nicht an den NUMA-Knoten zu hängen da die Last über alle Threads verteilt wird.
nanoJpeg reizt ab 32 Threads volle 100% aus...
Ich werde den Test morgen mal mit der nativen Jpeg-Implementierung und libJpeg wiederholen