Yükseltme konusunda oldukça yeniyim :: asio, ancak birkaç yıldır var olan ve yoğun olarak kullanılan bir proje üzerinde çalışıyorum. Mevcut atamam, sistemin yaptığı çeşitli şeylerle ilgili periyodik metrikler eklemektir. Metriklerden biri, boost :: asio :: io_service çalışma kuyrukları ve zamanlayıcı kuyruklarının ne kadar derin bir çalışma süresine dönüştüğünü gözlemlemektir. Bu yüzden bir destek isteyebilirim: asio :: io_service nesnesi, kuyruğunda kaç şey var. Benim "XXXX()" ve "YYYY()" çağrıları ne denk işlevselliği almak için boost asio bir yolu var mıboost :: asio :: io_service zamanlayıcılar ve mesajlar için işgal edilen kuyruk uzunlukları
boost::asio::io_service asio_service;
asio_service.post(boost::bind(do_work, "eat"));
asio_service.post(boost::bind(do_work, "drink"));
asio_service.post(boost::bind(do_work, "and be merry!"));
std::cout << "There are " << asio_service.XXXX()
<< "things in the post() queue and "
<< asio_service.YYYY() << " timers"
:
Ben soruyorum göstermek için
, aşağıdakileri dikkate ifade eden?Asio zamanlayıcı sıra koduna baktım ve sıra sadece bir vektör ve bir liste olduğunu gördüm, ancak her ikisi de özel. Özel olduklarından, erişim elde etmek için miras kalmıyorum ve bu bir çift metrik için bir şeyler sarmak için bir tür tuhaf olmayan ziyaretçi kalıbı yazmak zorunda kalmak istemiyorum: bu sayımlara doğrudan erişim ideal; bana erişim vermek için uğraştığım destek özel sürümleri ideal olmazdı: Ben zaten mevcut olan bunu yapmak için bir yol arıyorum. Umarım bunu soran ilk kişi ben değilim.
+ 1'e önemsiz bir işleyici göndermek için gerekli zamanı ölçmektir. Kuyrukları hakkında bilgi almak –
hata ayıklama için yararlı olabilir Kuyruk uzunlukları, performans sorunları hata ayıklama için kesinlikle yararlıdır, ancak bu küçük kesmek de büyük bir yardımcıdır. – Anne