AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO
Not using SEARCH_REFERENCE_SPACE_ALL results in significantly slower calls
- 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&`

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
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