显式大页支持与MOLEN编程范式的性能研究
立即解锁
发布时间: 2025-08-20 02:13:41 阅读量: 1 订阅数: 4 


并行化桌面搜索索引生成器的设计与实现
# 显式大页支持与MOLEN编程范式的性能研究
## 1. 显式大页支持的性能测试
### 1.1 SPECcpu 2006 v1.1 整数部分测试
使用 SpecCPU 2006 v1.16 这个标准化的 CPU 密集型基准测试,它也会对内存子系统造成压力。测试包含“test”、“train”和三组“ref”输入数据。进行了三组运行,比较了基页、仅支持堆的大页以及支持文本、数据和堆的大页。
| 测试机器 | 语言 | 程序 | 基页与大页时间比 | DTLB 时间占比 | 缓存未命中减少 | 基页未命中 | 大页未命中 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| X86 - 64 | C | perlbench | 1.0331 1.0101 | -0.1132 | 1.5427 | 0.8460 | 0.2181 |
| X86 - 64 | C | bzip2 | 1.0331 1.0331 | 0.1093 | 4.2693 | 2.3828 | -0.0008 |
|... |... |... |... |... |... |... |... |
| PPC64 | C | perlbench | 1.0101 1.0135 | 10.0610 | 3.7612 | 3.2238 | 5.0669 |
| PPC64 | C | bzip2 | 1.0133 1.0216 | 7.5871 | 0.7693 | 0.6592 | 0.2785 |
在分析此基准测试性能时,遇到了一些困难。与其他基准测试相比,分析引入了异常大的开销。由于记录的 PMU 事件数量多,中断开销大,更多的 CPU 时间用于分析器。减少粒度会损害 TLB 测量的准确性,且在现有硬件上无法解决。当实际性能超过预测性能时,差异源于分析开销。
### 1.2 SPECcpu 2006 v1.1 浮点部分测试
同样对浮点部分进行了基页和大页的性能比较。
| 测试机器 | 语言 | 程序 | 基页与大页时间比 | DTLB 时间占比 | 缓存未命中减少 | 基页未命中 | 大页未命中 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| X86 - 64 | C | lbm | 0.9327 0.9938 | 0.0064 | 1.5556 | 0.8606 | -0.0705 |
| X86 - 64 | C | sphinx3 | 1.1170 0.7827 | -0.0529 | 2.5732 | 1.2840 | 0.0373 |
|... |... |... |... |... |... |... |... |
| PPC64 | C | lbm | 1.0013 0.9962 | 0.0255 | 17.5501 | 16.2041 | -0.0984 |
| PPC64 | C | sphinx3 | 1.1497 1.1410 | 0.8974 | 16.5392 | 15.2007 | 0.5367 |
X86 - 64 在 TLB 未命中数量上差异可忽略不计,性能提升源于大页 TLB 未命中成本较低。PPC64 在某些情况下减少了 TLB 未命中数量,但占少数。总体而言,X86 - 64 获得了 5.19% 的性能提升,PPC64 获得了 8.20% 的性能提升。
### 1.3 SPECjvm 2008 测试
Java 在众多场景中广泛使用,Java 虚拟机(JVM)使用大量虚拟地址空间,可从大页支持中受益。使用 64 位的 IB
0
0
复制全文
相关推荐









