SORU
4 ŞUBAT 2009, ÇARŞAMBA


'In String Java kullanmalıyım.eğer performans önemli ise? () biçimi

Günlük çıkış için Dizeleri her zaman inşa etmek gerekir. Yazılım ve programları sürümleri üzerinde StringBuffer (bir çok ekler, iş parçacığı güvenli) StringBuilder (çok ekler, non-thread-safe) ne zaman kullanılacağını öğrendik.

String.format() kullanarak tavsiyesi nedir? Verimli mi, yoksa performans önemli olduğu tek gömlekleri için birleştirme ile sopa zorunda mıyız?

yaşlı ve çirkin ör tarzı

String s = "What do you get if you multiply "   varSix   " by "   varNine   "?");

vs düzenli yeni stil (ve muhtemelen yavaş),

String s = String.format("What do you get if you multiply %d by %d?", varSix, varNine);

Not: belirli kullanım davam 'one-liner' benim kod boyunca dizeler günlük. yüzlerce. Bir döngü gerektirmez, StringBuilder çok ağır. String.format() ilgilenen özel olarak geldim.

CEVAP
15 AĞUSTOS 2009, CUMARTESİ


hhafez kod aldım ve bir ilavehafıza testi:

private static void test() {
    Runtime runtime = Runtime.getRuntime();
    long memory;
    ...
    memory = runtime.freeMemory();
    // for loop code
    memory = memory-runtime.freeMemory();

Ayrı ayrı her biri için bu yaklaşım, ' operatör String.koşuyorum bellek kullanılan diğer yaklaşımlar etkilenmez. (olabilirdi görüşme ()) biçimi StringBuilder, Daha birbirine bağlanması, dize olarak yapıyorum ekledi "" ben "" ben "" ben"". Blah Blah Blah Blah

Sonuç izleyin () 5 tur her biri ortalama olarakYaklaşım(ms) ayrılan Bellek (uzun) Zaman

Bu String ve StringBuilder neredeyse zaman bilge aynıdır, ama StringBuilder bellek kullanımı çok daha verimli olur.görebiliriz Bu çok önemli zaman elimizde çok sayıda günlük aramaları (veya başka ifadeleri içeren dizeleri) bir zaman aralığı yeterince kısa yani Çöp Toplayıcı adam olmaz temizlemek için pek çok dize örnekleri sonuç '' operatör.

Ve bir not, BTW, günlük kontrol etmeyi unutmaseviyemesaj oluşturma önce.

Sonuç:

  1. StringBuilder kullanarak devam edeceğim.
  2. Çok fazla zaman ya da çok küçük bir hayatım var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • grickle

    grickle

    22 AĞUSTOS 2006
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007
  • Matt Harding

    Matt Harding

    23 Mayıs 2006