AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO
Not using SEARCH_REFERENCE_SPACE_ALL results in significantly slower calls
- Lenguaje dominante
- C++
- Estrellas
- 2.1k
- Forks
- 505
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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.
Guía de contribución
Línea de trabajo
Sigue getNumColorSpaces y getColorSpaceNameByIndex desde la llamada a PopulateOCIOMenus y, a continuación, inspecciona StringUtils::Compare, ToLower y el tipo de retorno de getName() implicado en la búsqueda. Compara el rendimiento de la configuración ACES 1.2 en la ruta indicada y verifica que la comparación más rápida conserva los resultados y reduce la regresión.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cpp
- Área
- computer-graphics, performance
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100