AcademySoftwareFoundation / AcademySoftwareFoundation/OpenColorIO

Optimize how code strings are built up to reduce the library size

Ouverte
#2,004 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Feature Request help wanted
Langage dominant
C++
Étoiles
2.1k
Forks
503
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

As part of the nanoColor project, we have been trying to reduce the size of the library. Currently nanoColor is between 1.5-3 MB, depending on the platform and compiler flags but the goal is to get it down to 1 MB or less.

As we have profiled where the size of the existing library comes from, we noticed that there is a lot of size coming from modules that create code. For example, all the modules that build shader code for various GPU languages are among the largest. Another example is the way Exception message strings are built. All of this uses a pattern which is nice to read in the code but which creates a lot of temporary string objects that bloats the library size.

This proposal is to find a better way to build up these long strings from components that is both easy to read in the code but which is much more efficient in terms of the size of the library.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par profiler les modules qui construisent du code de shader pour les langages GPU ainsi que la construction des chaînes de caractères des messages d’exception décrite dans l’issue. Comparez les approches pour assembler de longues chaînes, puis vérifiez que la taille de la bibliothèque est réduite jusqu’à l’objectif indiqué de 1 Mo ou moins sans perdre en lisibilité.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp
Domaine
performance
Type d'issue
Refactorisation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.