Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++ stl] stl , memoria occupata

    ciao.
    Ho creato un importatore in c++ da sketchup per opengl.
    Utilizzo per immagazzinare i dati dei vector stl std::vector e sui dati effettuo pochissime operazioni , se non nessuna.
    Il problema è che per modelli medio piccoli funziona correttamente, mentre per modelli molto,molto grandi va in crash.
    Ho osservato l'occupazione di memoria dopo aver lanciato l'eseguibile compilato in release (con il gestione attività/prestazioni di win vista)e tende a crescere normalmente per modelli semplici , mentre per i modelli molto grandi cresce fino a 3gb(compilo a 32 bit) poi va in crash.

    E possibile risolvere qualcosa utilizzando invece dell' stl dei container piu' leggeri(tipo linked list?)?
    prima di farlo lo provo a chiedere.
    o qualche altra tecnica?
    perchè ho letto che i container stl sono avari di risorse , è vero?
    ci sono delle statistiche da qualche parte?

    grazie

  2. #2
    Non puoi occupare meno spazio che in un vector, dato che esso semplicemente usa internamente un array stile C per gli elementi, un puntatore a tale array e due size_t per memorizzare capacity e size. Tutti gli altri container occupano più spazio.
    Se sai in anticipo di quanti oggetti si parla puoi preallocare il vettore esattamente alla dimensione giusta (in modo che nel riallocare automaticamente non allochi più spazio del necessario), ma dubito che servirà a qualcosa; l'unica credo sia diminuire le dimensioni dei tuoi oggetti.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.