在linux(x86系统)中,同一个elf文件的多个实例是否可以从缓存中受益?

时间:2015-05-22 13:44:24

标签: linux caching architecture

在linux(x86系统)中,同一个elf文件的多个实例是否可以从缓存中受益?我的意思是TLB-iL1-i等等。

1 个答案:

答案 0 :(得分:0)

如果我正确地解释了您的问题,您的意思是说当从同一个可执行文件加载多个进程时,代码将在物理内存中的进程之间共享。这些多个实例'具有以下好处(而不仅仅是在物理内存中制作两个副本) -

  1. 减少物理内存的使用,为其他用途留出空间。

  2. 有两种类型的缓存 - 一种用于物理内存,另一种用于页面表。第一个是L1,L2,L3,并且在一些系统L4缓存上。它们在系统中的CPU拓扑中具有不同的位置,但用于相同的目的 - 在处理器附近本地存储RAM的某些部分。当代码在多个进程之间共享时,RAM的使用更加本地化(由于所有代码都在一个位置),因此缓存抖动减少了。

  3. 页面表缓存或TLB(转换后备缓冲区,或类似的东西)在进程之间的每个交换机上刷新,因此它们不会从代码共享中受益。