2012-02-03 85 views

回答

2

好吧,假設4個KiB頁面,

#include <stdint.h> 
bool same_page(const void *x, const void *y) 
{ 
    uintptr_t mask = ~(uintptr_t) 4095; 
    return ((uintptr_t) x & mask) == ((uintptr_t) y & mask); 
} 

這將讓醜陋很快,因爲網頁上有共同的架構可變大小,以及特定內存區域的頁面大小和將被改變運行中的操作系統取決於應用程序內存使用模式。

(請注意,存儲器頁虛擬內存而不是物理內存。嚴格地說,它沒有意義談論物理頁面,當有人說「物理頁面」,他們說「身體雖然我們通常所理解內存對應一頁「。)

相關問題