JVM 剖析花园:2 - 透明大页

💡 原文中文,约5900字,阅读约需14分钟。
📝

内容提要

本文介绍了大页和透明大页的概念以及它们对虚拟内存的影响。大页减少页表遍历成本,提高性能。透明大页为应用程序提供大容量页面支持,不改变应用程序。实验证明启用透明大页显著提高性能。建议在应用程序有大量数据和大堆的情况下尝试使用大页。

🎯

关键要点

  • 大页(Large Page)和透明大页(Transparent Huge Page)是虚拟内存中的重要概念。
  • 大页可以减少页表遍历成本,从而提高性能。
  • 透明大页为应用程序提供大容量页面支持,无需修改应用程序。
  • 启用透明大页显著提高了性能,尤其是在处理大量数据和大堆的应用程序中。
  • Linux中有两种实现大页的方法:hugetlbfs和透明大页。
  • 透明大页可能会导致内存开销或时间开销,但可以通过madvise(2)进行优化。
  • 实验表明,使用大页面可以显著减少TLB未命中率,提高性能。
  • 启用透明大页后,内存释放速度更快,适合大堆应用程序。
  • 建议在应用程序有大量数据和大堆的情况下尝试使用大页。
➡️

继续阅读