2010-06-11 10 views
6

Başkalarının Boost.Asio'yu ölçeklenebilirlik açısından ne kadar zorladıklarını merak ediyorum. 1000 soket nesnesine, bir avuç alıcı nesnesine ve binlerce zaman sayacı nesnesine kullanabilen bir uygulama yazıyorum. İşleyicilerimin birbirini durdurmadığından emin olmak için io_service::run numaralı bir iş parçacığı havuzu ve strand s'yi uygun yerlerde kullanacak şekilde yapılandırdım.Boost.Asio'nun Ölçeklenebilirliği

Platformum Red Hat Enterprise Linux with Boost 1.39, ancak daha yeni bir yükseltme sürümüne geçiş yapmaya karşı değilim.

cevap

9

Zamanlayıcılar, ağ (hem TCP hem de UDP), seri (20+ satır, ikisi de 500 kbps'de çalıştırılan) için birkaç Linux çeşidi üzerinde 1.39 kullanıyoruz ve birçok etkinliğe sahip değiliz. Soket bağlantıları, herhangi bir zamanda birkaç yüz senkronize zamanlayıcımız var. Onlar üretime giriyorlar ve bizim için iyi çalışıyorlar. Senin yerinde olsaydım, hızlı bir prototip ve performans testi yapardım.

Yükseltme 1.43, ASIO'da bir dizi Linux'a özgü performans geliştirmesi olduğunu iddia ediyor, ancak henüz ürünlerimiz için bunları karşılaştırmam gerekiyor.

+0

İyi öneri, Boost 1,39 ile 1,43 arasında bazı ölçümler yapacağız. –

6

İstemcinin/sunucunun tüm gün boyunca yüzlerce eşzamanlı bağlantıya sahip olduğu bir aso'yu destekledim. Her seans, her biri için birkaç saat okuma/yazma işlemi yapar. Yükseltme asio'nun son sürümünü kullanmanızı tavsiye ederim. 1.39 sürümünü hatırlayamıyorum, ancak eski sürümleriyle ilgili sorunlar yaşadım. Boost asio'nun güncel versiyonu kararlı görünüyor.

Bahsettiğim yazılım yalnızca Windows üzerinde çalışır, durumunuzdan farklı olsa da bahsetmem gerekir.

+0

Birden çok iş parçacığı kullanıyor musunuz? ya da sadece bir büyük iplik ve asenkron güçler? – matiu