2012-03-19 15 views
5

Abbiamo dati sulle prestazioni complesse che dimostrano un vantaggio di virgolette singole su virgolette doppie? La maggior parte delle persone sarà più a suo agio con le virgolette.String vs GString Performance

So GString può essere utilizzato quando stiamo valutando l'espressione ed eseguire la valutazione pigra

risposta

4

Ecco un link ad alcuni test effettuati nel '09:

http://pstehlik.com/2009/01/the-speed-difference-between-the-different-types-of-strings-in-groovy-and-grails/

I risultati sembravano variare molto a seconda che stiate usando una stringa o GString, cosa stavate facendo con quell'oggetto e se steste correndo sulla console o sul jetty.

Ma essendo quasi 3 anni fa, molto potrebbe essere cambiato. Lo script di test è ancora disponibile nella parte inferiore della pagina, quindi puoi provare a eseguirlo nella versione corrente di Groovy per vedere come sono ora i risultati. Puoi anche vedere il suo nabble post che potrebbe dare qualche informazione in più.

Personalmente, utilizzo le stringhe con virgoletta singola il più delle volte, e uso semplicemente il GString con virgolette doppie quando è necessario utilizzare la sostituzione variabile. Non ho mai provato le differenze di prestazioni però.

+4

Una nota: se la stringa a doppia virgola non contiene alcun contenuto dinamico (ad esempio: no '$ var' o' $ {var} 'elementi), viene convertita automaticamente in una stringa normale. Quindi, spesso, non c'è motivo di preoccuparsi del tipo di stringa. L'unico problema con le stringhe con doppia citazione è che devi sfuggire ai segni del dollaro. Controllalo stampando '" foo ".class' da una console. – OverZealous