JVM 剖析花园:2 - 透明大页
💡
原文中文,约5900字,阅读约需14分钟。
📝
内容提要
本文介绍了大页和透明大页的概念以及它们对虚拟内存的影响。大页减少页表遍历成本,提高性能。透明大页为应用程序提供大容量页面支持,不改变应用程序。实验证明启用透明大页显著提高性能。建议在应用程序有大量数据和大堆的情况下尝试使用大页。
🎯
关键要点
- 大页(Large Page)和透明大页(Transparent Huge Page)是虚拟内存中的重要概念。
- 大页可以减少页表遍历成本,从而提高性能。
- 透明大页为应用程序提供大容量页面支持,无需修改应用程序。
- 启用透明大页显著提高了性能,尤其是在处理大量数据和大堆的应用程序中。
- Linux中有两种实现大页的方法:hugetlbfs和透明大页。
- 透明大页可能会导致内存开销或时间开销,但可以通过madvise(2)进行优化。
- 实验表明,使用大页面可以显著减少TLB未命中率,提高性能。
- 启用透明大页后,内存释放速度更快,适合大堆应用程序。
- 建议在应用程序有大量数据和大堆的情况下尝试使用大页。
➡️