Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [VB6] Redim Preserve

  1. #1

    [VB6] Redim Preserve

    Ho fatto dei test sulla velocità dell'istruzione redim preserve, ovvero ho misurato, da una parte, la velocità di creazione e riempimento di un array, la cui lunghezza viene incrementata dinamicamente tramite appunto la redim preserve, ogni volta che c'è bisogno di inserire un nuovo elemento, dall'altra ho utilizzato un array dimensionato a design time (ad esempio con 100000 elementi) e poi riempito senza essere mai ridimensionato.
    Dai miei test sembrerebbe che la redim preserve non rallenti molto l'esecuzione, se non quando il numero di elementi dell'array comincia a salire molto (appunto intorno a 100K).
    Vorrei sapere da voi se pensate che i miei conti siano corretti, visto che ho bisogno di utlizzare un array per il mio codice ma ho bisogno anche di avere buone prestazioni.

  2. #2
    Devi anche calcolare, che una volta creato il .exe le prestazioni migliorano anche di piu'.

  3. #3
    quali, quelle dell' istruzione redim preserve?

    In effeti i miei dubbi derivano dal fatto che, a mio avviso, la redim preserve dovrebbe rallentare abbastanza l'esecuzione, visto che di fatto deve fare delle copie di elementi di memoria,però dai test non semebrerebbe.
    Mi sbaglio?

  4. #4
    è certamente più lento che allocare già gli elementi giusti
    ma è abbastanza veloce perche non copia gli elementi ad uno ad uno ma l'intera area di memoria
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Con redim preserve hai un risparmio di memoria dal momento che viene allocata solo la quantita' necessaria per l'array. Con un array statico rischi di avere spazio allocato inutilmente(e la riduzione di memoria potrebbe influire sulle prestazioni in condizioni critiche).
    ...and I miss you...like the deserts miss the rain...

  6. #6
    si questo lo so, per questo vorrei usare la preserve, in modo da non sprecare memoria, visto che devo gestire array che in alcuni casi possono essere molto piccoli(10/20 elementi) in altri molto grandi(100k elementi), però allo stesso tempo ho bisogno di alte prestazioni

  7. #7
    volendo potresti raggiungere un compromesso facendo delle redim preserve di un tot di elementi anziché uno solo, magari di 10 in 10 o 50 in 50 quando sfori la dimensione dell'array.. così non sprechi eccessiva memoria e riduci il numero di redim. potresti farti anche una classe con dei metodi add e remove per semplificare la gestione degli inserimenti e delegare alla classe i vari redim quando servono
    xxx

  8. #8
    esatto infatti sto facendo delle prove su questa ipotesi dei redim a "blocchi", però non sembra che le prestazioni varino di molto

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 © 2026 vBulletin Solutions, Inc. All rights reserved.