问题描述
我们知道<b-select v-model="project" class="form-control">
<option value="Please choose..." disabled>Please choose...</option>
<option :key="project.ProjectID" v-for="project in projects" :value="project"> {{project.ProjectName }}</option>
</b-select>
在内部调用malloc
。但是mmap
不一定会映射到堆,因为mmap
可以将对象映射到虚拟内存中的任何区域,那么mmap
在内部如何确保所请求的内存大小为从堆?
解决方法
当malloc
使用mmap
分配内存时,它不在乎内存来自何处,而是将分配委托给mmap
,并依靠它来提供可用的块的内存。
在GNU C库(可能还有其他实现中)中,此类分配与使用sbrk
管理的分配分开跟踪。所有涉及mmap
分配的操作也都被委托(重新分配和释放)。
从内核的角度来看,此类分配是临时中断的,即程序中断后的即。从程序员的角度来看,他们都是一样的。与仅使用sbrk
的分配相比,主要的实际后果是您不能假定已分配的块在程序中断之内,或者不能访问两个已分配块之间的地址空间,但是无论如何都不应这样做
另请参阅the POSIX specification for malloc
-它没有说明堆内容。