2013-05-25 16 views
6
için bellek yükü nedir?

Boost :: property_tree :: ptree'nin muazzam bir bellek yüküne sahip olduğunu buldum. Tahminim boş bir ptree'nin 150 bayt olduğu ve ptree'ye eklenen herhangi bir girişin en az 150 bayt daha eklediği. Bu, binlerce giriş içeren ağaçlarda bizim için kullanılamaz hale getirir.boost :: property_tree :: ptree

Tahminim kapalı mı? Tepeyi düşük tutmanın bir yolu var mı?

cevap

1

Boost.PropertyTree temelde hızlı veya hafif ayrıştırıcı değil.
Yüksek katman rahatlığı ve işlevsellik sağlamaya odaklanır, bu yüzden verimli olacak şekilde üretilmemiştir, sanırım.

Sen benzer bir soru için boost posta listesinde this thread görebiliyordu.

Ben Boost.PropertyTree alternatif ya olabileceğini öneririm:

  • bir SAX ayrıştırıcı - Bu bir XML ayrıştırma için başka bir yaklaşımdır. DOM ayrıştırıcısının tam tersi gibi; XML düğümlerini tek tek ayrıştırır. Genellikle, "tamamlayıcıda tüm dosya için bellek ayırma" bir DOM ayrıştırıcısında oluşur, ancak SAX ayrıştırıcılarında gerçekleşmez.
  • bir ayırıcısı özelleştirilebilir ayrıştırıcı + kullanıcı tanımlı hafıza havuzu - Eğer istikrarlı bellek havuzu işaret etmek gibi ayrıştırıcı allocator yapılandırabilirsiniz. Bu sadece ... vb ön tahsis bellek, bir parçalanma farkında havuz, hatta bir bellek eşlemeli dosya, büyük bir tampon olabilir
İlgili konular