SORU
15 EKİM 2010, Cuma


Yapılar karşı sınıfları

Kod 100.000 nesneleri oluşturmak üzereyim. Küçük olanlar, sadece 2 ya da 3 özelliklere sahip. Genel bir liste halinde yazarım ve ne zaman onlar, onları döngü ve değer a kontrol ve değeri b güncelleme falan değilim.

Daha hızlı/sınıf olarak bu nesneleri oluşturmak için daha iyi ya da yapı mı?

EDİT

bir. Özellikler değer türleri (dize hariç sanırım?)

b. (Emin değiliz) doğrulamak için bir yöntem olabilir

2 DÜZENLEYİN

Merak ediyordum: öbek üzerindeki nesnelere ve eşit çöp toplayıcı tarafından işlenen yığını, ya da bu iş farklı mı?

CEVAP
15 EKİM 2010, Cuma


Oldudaha hızlısınıf olarak bu nesneleri oluşturmak için ya da yapı?

Bu sorunun cevabını tespit edebilecek tek kişi sensin. Her iki açıdan da, deneyinölçün, odaklı kullanıcı ilgili anlamlı bir performans ölçüm ve değişikliği ile ilgili senaryolar gerçek kullanıcılar üzerinde anlamlı bir etkiye sahip olup olmadığını anlarsın.

Daha az tüketen yapılar yığın bellek (onlar Çünküdaha küçükve çünkü onlar daha kolay sıkıştırılmış değil, "yığın"). Ama artık referans bir kopyasını daha kopyalamak için alıyorlar. Performans kriterleri bellek kullanımı ve hız için ne bilmiyorum; burada bir değiş tokuş var ve nasıl bir şey olduğunu bilen kişi sensin.

Oldudaha iyisınıf olarak bu nesneleri oluşturmak için ya da yapı?

Sınıf, yapı belki. Genel bir kural olarak: Eğer nesne ise :
1. Küçük
2. Mantıksal olarak değişmez bir değer
3. Onlardan bir sürü var
O zaman bir yapı yapmak istiyorum. Aksi takdirde bir başvuru türü ile ilgileniyorum.

Eğer bir yapı, bazı alan mutasyona ihtiyacınız varsa, genellikle daha iyi bir alana doğru ayarlama ile tamamen yeni bir yapı döndüren bir kurucu oluşturmak için. Belki de biraz daha yavaş (ölç!) ama neden mantıklı çok daha kolay.

Öbek üzerindeki nesnelere ve eşit çöp toplayıcı tarafından işlenen yığını.

Hayır, çünkü aynıdırbu nesneleri toplama kökleri yığın. Çöp toplayıcı hiç sorun gerekmez "Bu şey canlı yığını mı? bu sorunun cevabı her zaman" çünkü "Evet, yığın". (Şimdi, bu konuda güvenebilirsinizdevam etbir nesne yığını çünkü hayatta uygulama ayrıntı. Jetta, diyelim ki, normalde değeri bir yığın olurdu ne enregister Bu iyileştirmeler tanıtmak için izin verilir, ve daha sonra GC hala hayatta olduğunu bilmiyor o yüzden hiç yığında. Enregistered bir nesne onun torunları titizlikle toplanmış, üzerine kayıt tutarak tekrar okumak olacak değil en kısa sürede olabilir.)

Ama çöp toplayıcıyokbu nesneleri canlı olarak yığın tedavi etmek için, herhangi bir nesneyi canlı olarak hayatta olduğu bilinen davranır aynı şekilde. Nesne üzerinde bir yığın bakın öbek ayrılan nesneler gereken hayatta, yani GC vardır tedavi nesneler yığını gibi yaşayan bir yığın ayrılan nesneler için amaçlar belirleme canlı olarak ayarlayın. Ama belli ki onlardeğil"canlı nesneleri ilk etapta. öbek üzerinde değil çünkü" sıkıştırma amacıyla yığın muamelesi

Anlaşıldı mı?

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • PCDIY

    PCDIY

    16 AĞUSTOS 2013
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013