I have an application that uses enough memory (Gigabytes)
that it sometimes slows way down because of swapping. I'd like
to be able to tell the user when that happens, so the user will not
give up in disgust. My application is threaded, and the swapping
generally takes place in one particular thread, so I could in
principle have another thread monitor and report. But I am
not familiar enough with low-level Unix memory-management stuff
to know whether there is any way to track what is going on, or
even where to start to look.
Can anyone offer advice or suggestions?
(The application's design pattern is model-view-controller.
The model is in one thread; it is pretty much straight C++,
and that's where the swapping takes place. The view and
controller use another thread or two; They are pretty
conventional Cocoa/Objective-C/Interface-Builder, and that's
where it would be easiest to track swapping and report to
the user.)