AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Not using SEARCH_REFERENCE_SPACE_ALL results in significantly slower calls

Abierto
#1,709 0 comentarios 0 reacciones 0 asignados Ver en GitHub
help wanted
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&`
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.

Guía de contribución

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.