El 18/07/2013 14:45, Oodini escribió:
> Hello,
>
> I use Boost.Interprocess on Windows 2003 Server.
>
> I am experiencing performances troubles. I am trying to understand
> what happens, and arrived on Microsoft web pages.
>
> I seems that on Windows, shared memory is implemented only through
> mapped files, and that only a portion of the shared memory is
> physically in the RAM (this limited number of pages is called
> "working set").
>
> The Windows API provides some functions for this working set :
>
http://msdn.microsoft.com/en-us/library/windows/desktop/cc441804%28v=vs.85%29.aspx
>
> I would have liked Interprocess wraps the functions
> GetProcessMemoryInfo() and SetProcessWorkingSetSize(), so that the
> full shared memory is put in RAM.
Inteprocess can't do that because it's a portable library and POSIX
systems don't know what a working set is. You can perfectly call those
functions yourself as you don't need any internal Interprocess data to
call them.
Although shared memory is never guaranteed to be in RAM, you don't any
any guarantee with your "process memory" (if memory pressure is detected
the OS can swap you heap and/or executable pages to the swap file to
free some RAM for other processes).
Best,
Ion
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users