From: Slava, Alex (raf.devel_at_[hidden])
Date: 2006-05-20 00:12:22
On 5/18/06, Beman Dawes <bdawes_at_[hidden]> wrote:
> * Thanks for providing timings. That is much more believable than
> unsupported assertions that one technique is faster than another.
Thanks. Guided by lots of requests, we are working on providing much more
elaborate set of benchmarks.
Sorry for late answer; most of your questions hit us as a sniper
rifle, and we appreciate it greatly. We divide answers into several
emails, because some discussion topics could terminate faster than
Notation: "memory-mapped file(s)" = "MMF"
> * A design needs to support both memory-mapped files and regular files, with
> the same interface, so either implementation can be used as the need
> dictates. A programmer should be able to write portable code that will work
> with either implementation.
Good point. However, this question could converge to another: wherther it makes
sense to use RAF because of when its efficiency cannot be exploited.
Access by index or iterator does seem so convenient, but maybe such
approach could cause
additional overhead, unlikely though. Maybe other issues will show up.
Need to implement and benchmark. Seems worth a try.
> - Not all operating systems support memory-mapped files.
We do regard portability issues among the most important.
We will surely implement RAF for the systems that do not support MMF.
This is just an initial implementation to point out our view of the
problem, and where we intend to go.
Currently, our point of view is that the RAF library should provide
that can be implemented efficiently on systems that support MMF. It must be
possible to implement on systems that do not support this feature, but with no
efficiency guarantees (reasonable efficiency). Primarily this is because we
beleave that MMF technology is the main reason for the RAF library to appear on
C++ wish list, and why people would like to use it.
Notably, it is difficult to find an OS not supporting them: All Unix
systems conforming to SVr4, POSIX.1b (formerly POSIX.4), 4.4BSD, SUSv2
have it; in particular this includes Mac OS X and FreeBSD. MS Windows
Systems have it since Win 95, and even Win CE has it. OS/2 does not
support it explicitly, but it can be remedied by installation of page
fault exception handler (things could be even better in Warp and
Aurora). Mac OS 9.x and earlier Macintosh systems do not support file
mapping, but to the best of our knowledge Apple has ceased to support
those systems officially 2 or 3 years ago.
-- Svyatoslav Trukhanov, Oleksii Ursulenko
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk