比如, 有某进程a和b, 我要限定a进程最高只能占用50m内存, b进程40m内存
如何做?
如何做?
解决方案 »
- 跪求一商品交易系统的数据库设计思路
- 关于the golbal default build tree (WINCEROOT) has not been set .....问题
- 24位位图颜色问题
- 关于visual studio 2008中生成、调用dll的问题
- 如何用服务在winlogon桌面显示窗口并最高层显示?
- 怎么在vc++中将excel表导入sql,界面是在vc开发的系统界面上
- 如何显示出Toolbar资源?
- 用 Ms Media player9 控件播放MPEG2,怎样指定播放音轨
- VC中有没有可以显示HTML内容的控件可以用的?
- 怎样知道本机的IP被更改了?
- accept(SOCKET s, struct sockaddr FAR *addr, int FAR *addrlen)参数问题
- CView::OnMouseMove()在该段中的作用??
CreateJobObject AssignProcessToJobObject 然后SetInformationJobObject ,第二个参数写JobObjectBasicLimitInformation接着倒数第二个参数填入一个JOBOBJECT_BASIC_LIMIT_INFORMATION结构的缓冲区
typedef struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {
LARGE_INTEGER PerProcessUserTimeLimit;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD LimitFlags;
SIZE_T MinimumWorkingSetSize;//最小内存
SIZE_T MaximumWorkingSetSize;//最大内存
DWORD ActiveProcessLimit;
ULONG_PTR Affinity;
DWORD PriorityClass;
DWORD SchedulingClass;
} JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION;
// begin_ntddk begin_ntifs
//
// Process Information Classes
//typedef enum _PROCESSINFOCLASS {
ProcessBasicInformation,
ProcessQuotaLimits,
ProcessIoCounters,
ProcessVmCounters,
ProcessTimes,
ProcessBasePriority,
ProcessRaisePriority,
ProcessDebugPort,
ProcessExceptionPort,
ProcessAccessToken,
ProcessLdtInformation,
ProcessLdtSize,
ProcessDefaultHardErrorMode,
ProcessIoPortHandlers, // Note: this is kernel mode only
ProcessPooledUsageAndLimits,
ProcessWorkingSetWatch,
ProcessUserModeIOPL,
ProcessEnableAlignmentFaultFixup,
ProcessPriorityClass,
ProcessWx86Information,
ProcessHandleCount,
ProcessAffinityMask,
ProcessPriorityBoost,
ProcessDeviceMap,
ProcessSessionInformation,
ProcessForegroundInformation,
ProcessWow64Information,
ProcessImageFileName,
ProcessLUIDDeviceMapsEnabled,
ProcessBreakOnTermination,
ProcessDebugObjectHandle,
ProcessDebugFlags,
ProcessHandleTracing,
ProcessIoPriority,
ProcessExecuteFlags,
ProcessResourceManagement,
ProcessCookie,
ProcessImageInformation,
MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum
} PROCESSINFOCLASS;ZwQueryInformationProcess(...ProcessPooledUsageAndLimits,...);
ZwSetInformationProcess(...ProcessPooledUsageAndLimits,...);// ProcessPooledUsageAndLimits
typedef struct _POOLED_USAGE_AND_LIMITS {
SIZE_T PeakPagedPoolUsage;
SIZE_T PagedPoolUsage;
SIZE_T PagedPoolLimit;
SIZE_T PeakNonPagedPoolUsage;
SIZE_T NonPagedPoolUsage;
SIZE_T NonPagedPoolLimit;
SIZE_T PeakPagefileUsage;
SIZE_T PagefileUsage;
SIZE_T PagefileLimit;
} POOLED_USAGE_AND_LIMITS;
typedef POOLED_USAGE_AND_LIMITS *PPOOLED_USAGE_AND_LIMITS;这个应该可以吧,我没试过~~~
一旦交换占用的内存到虚拟内存,会导致内存硬盘间频繁的页面交换吧。我觉得一般加载程序的时候使用这个函数较好。