ASIO, HFT (Yüksek Frekans Ticareti) gibi düşük gecikme gerektiren uygulamalar oluşturmak için kullanılabilir mi?ASIO, düşük gecikmeli uygulamalar oluşturmak için kullanılabilir mi?
Yani Boost.ASIO platforma özel optimum demultiplexing mekanizmasını kullanır: IOCP, epoll, kqueue, poll_set,/dev/
- TOE özelliğine sahip
Ayrıca kullanılabilir Ethernet-Adaptör (TCP/IP boşaltması anket motor) ve OpenOnload (çekirdek-baypas BSD soketleri).
Ancak düşük gecikmeli uygulama Boost.ASIO + TOE + OpenOnload kullanılarak oluşturulabilir mi?
Ben puanlar görebilirsiniz. 5. ve (biraz) 4. About 2. Özel işleyici türleri ile birlikte iplikçikleri doğru şekilde işleme geldiğinde katılıyorum. "Doğru şekilde" ile demek istediğin şey bu mu? Async tamamlamalarıyla asgari yükün önlenebileceği bir yerde, stil geri çağrılarının nasıl yapıldığını (1) gerçekten anlamıyorum. (3.) Kütüphane kodunu mı yoksa çağrı kodunu mı kullanıyorsunuz? Belki de çekici bir örnek var mı? – sehe
@sehe: Boost.Asio kullanarak örnek kodum yok - işe yaramayacağını fark ettiğimizde onunla oluşturduğumuz prototipleri attık. O zamanlar libuv, yaşayabilir değildi, fakat “libev” ve “libevent” - hala kendi yolumuza gitmeyi seçtik. "Doğru şekilde" ile kastettiğim şeylerden bazıları (a) belirli zamanlarda belirli yiyecekleri/ioctlleri kullanmak, (b) çoklu bağlantıların önceliklendirilmesi üzerinde tam kontrol sahibi olmak (c) ve (c) kullanımı 'accept4() '(bugün bile Asio'nun kullanamadığı, dolayısıyla atomik' SOCK_CLOEXEC 'yapamaz) gibi spesifik, satılamaz API'ler. –
Ah. “Doğru yolla” demek, dış gereksinimlerle ilgili olarak (“Asio için” demek istediğini varsaymıştım). Atomic SOCK_CLOEXEC, koştum ve çalışmak zorunda kaldım. Herhangi bir örnek beklemiyorum _code_, sadece soyut mermi metinleri ile aklınızda bulundurduğunuz _scenarios_ açıklayan bu gibi örnekler :) – sehe