• [^] # Re: Benchmark

    Posté par . En réponse au journal Veuillez instancier ce journal avant de le lire. Évalué à 3.

    chaque entité créé provoque une allocation égale à la taille de tous les composants

    Si tu utilises un vector par type de composant tu peux limiter sa taille du tableau à "entité_max qui a ce composant - entité_min qui a ce composant + 1".
    Mais oui, ce stockage gaspille de la mémoire

    Si tu as des idées d'autres layouts, je cherche de l'inspiration!

    Pas tellement. J'avais commencé avec une implémentation simple : chaque système avait une map.
    Après quelques tests et benchmarks (cf mon commentaire sur perf), chaque système contient finalement :
    * un tableau (brut) de Composant (moins coûteux qu'un vector)
    * un std::vector d'entités, pour savoir quelles entités ont ce composant. Ce vector est trié pour optimiser l'utilisation du cache quand le système est mis à jour.

    Rien de bien original, mais ça me suffit pour mon usage :-)