mmap file performance
Patrick Schluter
Patrick.Schluter at bbox.fr
Wed Apr 24 09:34:37 UTC 2024
On Monday, 15 April 2024 at 16:13:41 UTC, Andy Valencia wrote:
> On Monday, 15 April 2024 at 08:05:25 UTC, Patrick Schluter
> wrote:
>> The setup of a memory mapped file is relatively costly. For
>> smaller files it is a net loss and read/write beats it hands
>> down.
>
> Interestingly, this performance deficit is present even when
> run against the largest conveniently available file on my
> system--libQt6WebEngineCore.so.6.4.2 at 148 megs. But since
> this reproduces in its C counterpart, it is not at all a
> reflection of D.
>
> As you say, truly random access might play to mmap's strengths.
Indeed, my statement concerning file size is misleading. It's the
amount of operations done on the file that is important. For
bigger files it is normal to have more operations.
I have measurement for our system (Linux servers) where we have
big index files which represent a ternary tree that are generally
memory mapped. These files are several hundreds of megabytes big
and the access is almost random. These files still grow but the
growing parts are not memory mapped but accessed with pread() and
pwrite() calls. Accesses via pread() take exactly twice the time
from memory copy for reads of exactly 64 bytes (size of the
record).
>
> My real point is that, whichever API I use, coding in D was far
> less tedious; I like the resulting code, and it showed no
> meaningful performance cost.
More information about the Digitalmars-d-learn
mailing list