Jump to content

Page faults


PhoneBooth

Recommended Posts

My computer is running xp pro sp2 and has 3 gigs of ram. So I have disabled the page file. But know i hat pop ups has a lot of page faults 6 million plus. How can a there be page faults with no page files

Edited by PhoneBooth
Link to comment
Share on other sites


Before you can even begin to troubleshoot this, you need to know whether or not these are hard or soft page faults that you are seeing, and in what process(es) these faults are occurring.

A hard page fault is a "true" page fault where the operating system needs to read data into memory from the disk in order to satisfy a request made by a running process for that data. These are the ones you usually see associated with page fault crashes in an application.

A soft fault will occur when a running process tries to access the virtual location, or virtual address, of a particular data set, and the operating system was able to satisfy the request without reading in the page from disk. This happens most often with memory pages that the application wants to be zero (called ‘demand zero’ pages), when a page is written to for the first time (‘copy on write’ pages) or if the page is already in memory somewhere else (for example, moved to the area of memory that can be paged to disk if absolutely necessary - it's listed as 'paged' memory, but it's still actually in RAM). The last situation occurs if a file is memory mapped into multiple processes or into multiple locations of the same process, and one of the other file references has already caused the data to be written into physical memory or moved from one location to a different location, causing a 'soft" fault as the data is moved back to the location the process is requesting.

You can ultimately see this one of two ways - you can use the NtQuerySystemInformation API to retrieve the SYSTEM_PERFORMANCE_INFORMATION structure, but this API isn't documented and will require reading of the web or a book called "Windows NT/2000 Native API Reference", by Gary Nebbett, to see how to do this in your application. You can also use the documented API GetProcessMemoryInfo (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getprocessmemoryinfo.asp) to gather page fault data in your application, but this API will not distinguish between hard and soft page faults, so it is of less use than the NtQuerySystemInformation API.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...