Date: Sun, 11 Aug 2019 21:07:00 +0000
David Blaikie:
> Oh, no, the build system doesn't do anything here other than tell the
> compiler the path to the BMI - the compiler does the memory mapping - given
> a path to the BMI, the compiler doesn't read the bytes with a stream - it
> memory maps the file directly, so it can lazily load/reference components
> of the file. Clang's BMI consists of efficient on-disk hash tables and
> things, so only the necessary portions of a BMI are ever read (always room
> for improvement, all software has bugs, etc - but that's the general goal).
So does the OS cache memory maps between compiler invocations? Even if
all file descriptors are closed between those?
> Oh, no, the build system doesn't do anything here other than tell the
> compiler the path to the BMI - the compiler does the memory mapping - given
> a path to the BMI, the compiler doesn't read the bytes with a stream - it
> memory maps the file directly, so it can lazily load/reference components
> of the file. Clang's BMI consists of efficient on-disk hash tables and
> things, so only the necessary portions of a BMI are ever read (always room
> for improvement, all software has bugs, etc - but that's the general goal).
So does the OS cache memory maps between compiler invocations? Even if
all file descriptors are closed between those?
Received on 2019-08-11 16:09:34