AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Not using SEARCH_REFERENCE_SPACE_ALL results in significantly slower calls

Offen
#1,709 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
help wanted
Vorherrschende Sprache
C++
Sterne
2.1k
Forks
503
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Both `getNumColorSpaces` and `getColorSpaceNameByIndex` become much slower when using `SEARCH_REFERENCE_SPACE_SCENE` for example. For instance when using the ACES 1.2 config, `PopulateOCIOMenus` in `ociodisplay` goes from 0.74s to 8.1s on my windows workstation (see screenshot below).

This is primarily caused by the string comparison function: `ToLower` but also the new string allocation (going from `getName()`'s `const char*` to `const std::string&`
string_comparison

Replacing `StringUtils::Compare` with `::strcmp(...) == 0` cuts most of the cost down (0.9s instead of 8.1s). I think a faster method than the current approach would be needed in cases like these.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Verfolge getNumColorSpaces und getColorSpaceNameByIndex aus dem Aufruf von PopulateOCIOMenus, und untersuche anschließend StringUtils::Compare, ToLower und den Rückgabetyp von getName(), der beim Lookup verwendet wird. Führe einen Benchmark der ACES 1.2-Konfiguration auf dem angegebenen Pfad durch und verifiziere, dass der schnellere Vergleich die Ergebnisse beibehält und gleichzeitig die Regression reduziert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
computer-graphics, performance
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.