Un caso curioso de importación lenta de USD en Blender

2024-12-22

Un desarrollador encontró tiempos de importación inesperadamente lentos al importar escenas USD en Blender. El análisis de rendimiento reveló que el cuello de botella era la función de ordenación de ID interna de Blender, `id_sort_by_name`. Esta función, que se esperaba que tuviera una complejidad O(N), se degradó a O(N²) debido al esquema de nombres en los archivos USD. Al modificar la convención de nombres y optimizar el algoritmo de ordenación, el desarrollador redujo los tiempos de importación de 4 minutos y 40 segundos a 8 segundos para archivos más pequeños. Sin embargo, el problema subyacente proviene del requisito de Blender para ID ordenados, lo que lleva a sugerencias para reemplazar la lista enlazada con un árbol Trie o una tabla hash. Esta optimización destaca un desafío común en la optimización del rendimiento: identificar y abordar la complejidad inesperada.