我正在阅读hacks.mozilla.org上的64位Firefox版本的博客。
作者指出:
对于
我试图了解64位硬件如何对C / C ++进行自动边界检查(假设编译器具有硬件支持)。我在SO中找不到任何答案。我找到了one technical paper on this subject,但是我不知道该如何完成。asm.js
代码,增加的地址空间还使我们能够使用硬件内存保护来安全地删除asm.js
堆访问中的边界检查。收益非常可观:arewefastyet.com上报告的[[asmjs-apps-*-throughput测试结果为8%-17%。
有人可以在边界检查中解释64位硬件帮助吗?
我正在hacks.mozilla.org上阅读有关64位Firefox版本的博客。作者指出:对于asm.js代码,增加的地址空间还使我们可以使用硬件内存保护来安全删除...
VirtualAlloc()
粘贴在其自己的虚拟内存页面中的堆,这是一个将每个数组(基于静态或基于堆栈)粘贴在其中的系统。它自己的虚拟内存页面(更确切地说,它将分配放置在页面的end
中,因为在数组末尾运行比在数组开始之前尝试访问更为常见)然后,它会在分配的页面之后放置一个无法访问的“保护页面”,在这种情况下甚至是相当数量的页面。