SORU
20 Temmuz 2009, PAZARTESİ


Aşırı küresel yeni ve silmek için bir sebep var mı?

Değilsen bir işletim sistemi veya bir gömülü sistem programlama parça bunu yapmak için herhangi bir sebep var mı? Ve sık bellek yönetim fonksiyonları aşırı yükleme veya nesne havuzu yükü azaltabilirsiniz tanıtan yaratıp yok bazı belirli sınıflar için olduğunu tahmin edebiliyorum, ama genel olarak bunları yapıyor?

Ayrıca
Sadece aşırı silme işlevi bir hata buldum - bellek her zaman serbest değildi. Ve böyle hafıza kritik bir uygulama oldu. Ayrıca, bu aşırı yükleme devre dışı bırakma yalnızca ~%0,5 oranında performans düşer.

CEVAP
1 AĞUSTOS 2009, CUMARTESİ


Biz birçok nedenden dolayı çalıştığım yeri Sil ve yeni küresel operatörleri aşırı yükleme:

  • havuzutüm küçük ayırma -- yükünü azaltır, azaltır parçalanma, küçük-ayırma-ağır uygulamalar için performansı artırabilir
  • kadrajbilinen bir ömür boyu ... ayırmalarını bu sürenin sonuna kadar tüm boşaltır görmezden bunların hepsi bir arada (kuşkusuz bu yerel operatör aşırı yükleme ile daha global daha yaparız) ücretsiz
  • hizalamacacheline sınırları ayarlama --, vb
  • doldurma ayırma-- başlatılmamış değişkenleri kullanımını göstermek için yardım
  • ücretsiz doldurun-- daha önce silinen bellek kullanımını göstermek için yardım
  • ücretsiz erteledibedava doldurmak etkinliğini, bazen performans giderek artıyor
  • sentinelleryatutulur- tampon taşmaları, underruns, ve zaman zaman vahşi işaretçisini göstermek için yardım
  • yeniden yönlendirmeayırma NUMA, özel hafıza alanları ve hatta ayrı sistem belleği (örneğin gömülü betik dilleri ya da Dolaylı olarak) ayrı tutmak için hesap
  • çöp toplamaveya temizlik yine o gömülü betik dilleri için yararlı
  • öbek doğrulama-- her N/herşey yolunda görünüyor emin olmak için serbest bırakır allocs yığın veri yapısı üzerinden yürüyüş yapabilirsiniz
  • muhasebede dahil olmak üzeresızıntı izlemevekullanım fotoğraf/istatistik(yığınlar, yaş tahsisi vb.)

Muhasebe gerçekten esnek ve güçlü yeni/sil fikri: bir ayırma olduğunda, örneğin, etkin iş parçacıkları için tüm çağrı yığını kaydedebilirsiniz, ve bu konuda genel istatistikler. Eğer yerel olarak sebebi ne olursa olsun tutmak için boşluk yok diye ağ yığını üzerinden bilgi teslim olabilir. Burada toplayabilirsiniz bilgi türleri sadece hayal gücü (ve performans, tabii ki) ile sınırlıdır.

Uygun ortak hata ayıklama işlevleri var, hem de tüm uygulama kasıp iyileştirmeler yapmak, bu aynı aşırı. istatistiklere göre çok askıda çünkü küresel aşırı kullanıyoruz.

Biz hala kullan özel oran için tek tip de; birçok durumda, hızlanma ya da yetenekleri alabilirsiniz sunarak özel oran, örneğin, tek bir nokta-kullanımı bir STL veri yapısı çok aşıyor genel hızlanma sen-ebilmek almak küresel aşırı.

Orada C/C için bu oran ve hata ayıklama sistemleri bazılarına bir göz atın ve hızlı bir şekilde bu ve diğer fikirler

(Eski ama yeni ufuklar açan bir kitap hala çok ilgili en C özel oran sağlamak isteyebilirsiniz nedenlerle çoğu anlatılır Writing Solid Code,,.)

Eğer bu iyi araçlardan birini kullanabilirsiniz eğer açıkçası o yüzden kendi haddeleme yerine yapmak isteyeceksiniz.

Hangi daha hızlı, daha kolay, iş/yasal bir güçlük daha az olduğu durumlar vardır, hiç bir platform için henüz, ya da sadece daha fazla öğretici kullanılabilir: ve küresel bir aşırı yazmak kazmak.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • Kontor.TV

    Kontor.TV

    14 Mart 2006
  • Troy Hunt

    Troy Hunt

    29 EYLÜL 2011