Groups | Search | Server Info | Login | Register
Groups > de.comp.os.unix.programming > #2999
| From | Rainer Weikusat <rweikusat@talktalk.net> |
|---|---|
| Newsgroups | de.comp.os.unix.programming |
| Subject | Re: mmap oder read? |
| Date | 2022-06-08 17:27 +0100 |
| Message-ID | <87v8tbce8t.fsf@doppelsaurus.mobileactivedefense.com> (permalink) |
| References | <t7qnab.5fg.1@stefan.msgid.phost.de> |
Stefan Reuther <stefan.news@arcor.de> writes: > ich hab hier einen Microservice, der im Wesentlichen den lieben langen > Tag Dateien aus (wenigen) Containerfiles (z.B. *.tar) aufbereitet und > serviert. > > Je nachdem, wie ich die Framework-Komponenten zusammenstecke, bekomme > ich für das Lesen einer Datei aus dem Container > > mmap, <Verarbeiten>, munmap > > oder > > malloc, read, <Verarbeiten>, free > > Was für Gründe kann es geben, sich bewusst für die eine oder die andere > Art zu entscheiden? Für Dateien würde ich im Normalfall mmap benutzen, weil das einfacher zu handhaben ist: Anstatt Code zu schreiben, der einen Speicherbereich beschafft und diesen mit Daten füllt, die man verarbeiten möchte, sagt man einfach dem Kernel «gib mir einen Speicherbereich in dem meine Daten drinstehen» und kann sie dann direkt verarbeiten. Wie Hellmut Schellong hier allerdings mal in epischer Breite um die Jahrtausendwende rum demonstriert hat, ist das normalerweise langsamer, als read bzw scheint langsamer als read: Wenn man die Daten erstmal aus einem Kernelpuffer in einen Anwendungspuffer kopiert, lädt man sie nebenher auch in den Cache und nachfolgende Zugriffe müssen das nicht noch einmal tun. Nach einem mmap bekommt man hingegen erstmal page faults und cache und TLB misses, die alle nicht billig sind. Möglicher Vorteil: Falls das viele Daten sind, auf die man nur lesend zugreift, und die von anderen Prozessen ebenfalls gebraucht werden, braucht man nur eine Kopie im Speicher und nicht eine pro Prozeß.
Back to de.comp.os.unix.programming | Previous | Next — Previous in thread | Next in thread | Find similar
mmap oder read? Stefan Reuther <stefan.news@arcor.de> - 2022-06-08 17:46 +0200
Re: mmap oder read? Rainer Weikusat <rweikusat@talktalk.net> - 2022-06-08 17:27 +0100
Re: mmap oder read? Stefan Reuther <stefan.news@arcor.de> - 2022-06-09 17:52 +0200
Re: mmap oder read? Jakob Hirsch <jh.expires-20221231@plonk.de> - 2022-06-09 12:32 +0200
Re: mmap oder read? Rainer Weikusat <rweikusat@talktalk.net> - 2022-06-09 15:17 +0100
Re: mmap oder read? Stefan Reuther <stefan.news@arcor.de> - 2022-06-09 17:50 +0200
Re: mmap oder read? Rainer Weikusat <rweikusat@talktalk.net> - 2022-06-09 20:37 +0100
Re: mmap oder read? Bonita Montero <Bonita.Montero@gmail.com> - 2022-06-10 07:30 +0200
Re: mmap oder read? Bonita Montero <Bonita.Montero@gmail.com> - 2022-06-09 13:18 +0200
Re: mmap oder read? Bonita Montero <Bonita.Montero@gmail.com> - 2022-06-10 09:06 +0200
Re: mmap oder read? Bonita Montero <Bonita.Montero@gmail.com> - 2022-06-11 09:42 +0200
Re: mmap oder read? Jan Bruns <ebay@abnuto.de> - 2022-07-02 05:27 +0000
csiph-web