这个问题是继续我应该在Android中选择Boost Asio或Aysnc Socket线程吗?问:
Boost库旨在广泛使用,并可在各种应用程序中使用,但Android和iOS尚无官方支持
仅供参考.我一直在使用以下链接创建示例Android应用程序,但尚未成功:(
https://github.com/MysticTreeGames/Boost-for-Android
http://www.codexperiments.com/android/2011/05/tips-tricks-building-boost-with-ndk-r5/
如何将boost库(包括shared_ptr)与Android NDK和STLport一起使用
https://sites.google.com/site/fourdollars/android/android-mk
https://groups.google.com/forum/?fromgroups=#!topic/android-ndk/4lxhsKFe7Ho
http://www.crystax.net/trac/ndk/ticket/6
提前致谢.
我正在实现需要维护非常大量(100K或更多)长期连接的自定义服务器.服务器只是在套接字之间传递消息,它不会进行任何严肃的数据处理.消息很小,但其中很多都是每秒接收/发送的.减少延迟是目标之一.我意识到使用多个内核不会提高性能,因此我决定通过调用run_one或者对象poll方法在单个线程中运行服务器io_service.无论如何,多线程服务器将更难实现.
可能存在哪些瓶颈?系统调用,带宽,完成队列/事件多路分解?我怀疑调度处理程序可能需要锁定(这是由asio库在内部完成的).是否可以在boost.asio中禁用偶然队列锁定(或任何其他锁定)?
编辑:相关问题.多线程的系统调用性能是否有所改善?我的感觉是,因为系统调用是内核原子/同步的,所以添加更多线程不会提高速度.
我正在尝试使用async boost udp/tcp套接字操作来评估我的应用程序的同步.我一直试图找到一个类似于我的设计的例子,但没有找到任何让我相信我可能试图将异步操作放入我的设计的东西,即使它不是正确的路径.
我想连接到多个(读取:1-10之间)服务器并使用不同的协议与它们通信; 我有4-5个线程,它们产生的数据需要传递给这些服务器连接中的任何一个.
我当前的设计是同步的,io_service每个服务器连接线程使用一个对象,然后在生成线程和每个连接线程之间使用线程安全队列.
这种设计在吞吐量性能方面似乎不具备可扩展性,这是我想要最大化的.
是否有任何示例可以为不同的服务器模式提供多个连接?