Re: [asio-users] More major implementation changes - testing help wanted
Brought to you by:
chris_kohlhoff
From: Andrew D. <and...@gm...> - 2010-06-27 01:56:10
|
Two thumbs up. This is fantastic. On 7/06/2010 10:49 AM, Christopher Kohlhoff wrote: > Hi all, > > First off, same drill as last time: > > *** These changes will definitely be included in boost 1.44. *** > *** They need testing in real world applications before then. *** > *** Please try them out and let me know of any problems asap. *** > *** Don't assume others will find the bugs that affect your app! :-)*** > > In a nutshell, these changes are the continuation of the changes started > for asio 1.4.5 / boost 1.43. That is, more code has been moved into > non-templates, or moved into templates that have fewer template > parameters (where the ones they do have have commonly used instantiations). > > To test these changes with non-boost asio: > > - check out the "asio-1-4-branch" branch from asio's CVS repository; or > > - download a snapshot from > http://think-async.com/asio/asio-20100607.tar.gz > > To test these changes with boost.asio: > > - check out trunk from boost SVN; or > > - download a snapshot from > http://think-async.com/asio/boost_asio_20100607.tar.gz > > The API hasn't changed, so (most) correct programs should compile as-is. > (For explanation of "most" see below.) > > The highlights of the changes include: > > - Programs should compile faster. This was partly achieved by including > fewer files from other parts of boost, so you may need to add additional > #includes to your program. E.g. your program uses boost::array but does > not explicitly #include<boost/array.hpp>. > > - Large programs should compile smaller (although trivial programs may > be marginally larger). > > - Multiprocessor scalability is improved on Windows. Managing timers in > the io_service::run() threads was showing up as a performance hit (even > when only one thread calls io_service::run). I've added a separate > thread with the sole task of waiting for timeouts. A "waitable timer > queue" is used for managing the timeout. > > - Performance of asio::streambuf with async_read() and > async_read_until() is increased. These read operations will now use the > existing capacity of the streambuf when reading, rather than limiting it > to 512 bytes. > > - To reduce code size and speed up builds in large programs, asio now > supports optional separate compilation. To use, add the following > #include to a source file in your project: > > #include<asio/impl/src.cpp> // non-boost asio > > or > > #include<boost/asio/impl/src.cpp> // boost.asio > > or just add src.cpp to your project. Then build with > (BOOST_)ASIO_SEPARATE_COMPILATION defined in your project/compiler > settings. You may also build a separately-compiled asio as part of a > shared library. To do this, define (BOOST_)ASIO_DYN_LINK instead. > > Cheers, > Chris > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > asio-users mailing list > asi...@li... > https://lists.sourceforge.net/lists/listinfo/asio-users > _______________________________________________ > Using Asio? List your project at > http://think-async.com/Asio/WhoIsUsingAsio > |