Che impatto (se del caso) fa Delphi 2009 switch al Unicode(/UTF16) sono eseguibili le dimensioni e l'ingombro di memoria?

StackOverflow https://stackoverflow.com/questions/82454

  •  01-07-2019
  •  | 
  •  

Domanda

Ecco uno dall' "Nessuna domanda è troppo stupida" dipartimento:

Beh, come il soggetto dice:C'è un impatto?Se è così, quanto?Tutti i valori letterali stringa che ho nel mio codice e nel mio DFM risorse ora prendere il doppio dello spazio all'interno del file binari compilati?Che dire di runtime memoria di utilizzo di applicazioni compilate?Le variabili di stringa ora prendere il doppio di RAM?Dovrei nemmeno la briga?

Mi ricordo qualcosa di simile a ciò che viene chiesto, durante uno dei primi pre-release webcast, ma non ricordo la risposta.E la prova è solo 14 giorni non ho intenzione di provare a me stesso prima che le librerie di terze parti di cui ho bisogno sono stati aggiornati (presumibilmente in circa un mese).

È stato utile?

Soluzione

D2009 utilizza UTF-16 per la stringa di default tipo, anche se si può fare variabili UTF-8, se necessario.

Jan Goyvaerts discute le dimensioni/velocità in un buon post del blog.

I valori letterali stringa in DFMs sono stati UTF-8, almeno dal D7.Quindi, non ci sarà nessun aumento delle dimensioni a causa di stringhe in DFMs con D2009.

Altri suggerimenti

Ho finalmente messo le mie mani su Delphi 2009 e dopo aver effettuato le necessarie rettifiche il mio progetto ora si compila e si esegue bene.:)

Per ottenere risultati rapidamente e inizialmente ho avuto per commentare un po ' più complessa del modulo di applicazione e pertanto non è ancora al 100% paragonabili ancora, ma sembra già abbastanza sicuro di prevedere che, nonostante una quantità significativa di valori letterali stringa nel codice sorgente (un eccesso di debug messaggi di log) la dimensione del file binario compilato con Delphi 2009 sarà probabilmente circa lo stesso di prima, se non addirittura di meno!

Mi chiedo, il compilatore Delphi per eseguire qualsiasi tipo di compressione sui binari, o almeno la sua risorsa sezioni in qualche modo?In realtà avrei previsto la modifica dell'UTF-16 valori letterali stringa avere un impatto maggiore in questa particolare app.Sono i valori letterali davvero memorizzati come (non compresso) in UTF-16, all'interno del binario?

Non ho avuto il tempo di indagare le differenze di il footprint di memoria di sicurezza.

EDIT: Non direttamente associati a Unicode, ma sicuramente le correlate di:Andreas Hausladen recentemente pubblicato un interessante po ' (importante) impatto della {$STRINGCHECKS} opzione del compilatore (BTW:attivata per impostazione predefinita) sul file eseguibile compilato dimensioni: http://andy.jgknet.de/blog/?p=487

Io sono in attesa di una Unicode VCL per troppi anni, finalmente la vediamo.Non credo che la maggior parte delle applicazioni bisogno di preoccuparsi per la risoluzione di problemi in quanto non hanno che molti valori letterali stringa comunque o immagazzinare enormi quantità di dati in memoria.

Problemi di usabilità sono più ponderati per giustificare Unicode utilizzare, per quanto possibile.

Se qualche sviluppatore vuole creare un piccolo exe, si può ottimizzare l'utilizzo di AnsiString (se i18n non è un problema).

Non ho usato Delphi anni, ma probabilmente dipende da ciò che la codifica Unicode che utilizzano.UTF8 sarà esattamente lo stesso per il normale set di caratteri ASCII (solo utilizza più di un byte di caratteri esotici).UTF16 potrebbe essere un po ' gonfio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top