2
A
回答
2
作業對象是正確的道路要走。
至於錯誤代碼,確實沒有一個。您使用CreateProcess創建流程並使用CreateJobObject創建流程,然後將流程與作業對象(使用AssignProcessToJobObject)相關聯。
如果子進程分配的內存大於允許的內存量,父進程將不會收到錯誤消息。事實上,即使父進程退出,限制也會被執行。如果子進程嘗試分配超過允許的內存量,則分配將失敗。
2
您可以使用CreateProcess()產生一個進程。
一旦你這樣做了,你可以使用SetProcessWorkingSetSize()來試圖控制它使用多少物理內存,但這對於VMM來說比對一些實際的edict更加強烈,這會導致malloc()和new開始失敗。
沒有辦法說「這個過程將花費4mb的內存,並在此之後所有的分配失敗」。我的意思是,你將鏈接到win32 dll,你不知道這些東西需要什麼樣的內存使用。如果你想讓你的應用程序只佔用一定數量的內存,請不要多分配內存。不要做分配內存的事情。
關於錯誤代碼的問題根本沒有意義。
1
據我所知,windows上沒有這種可能性。儘管如此,測試和其他事情會非常有用。
您有這對Java作爲一個JVM只使用的內存預設的量,但它不是一個功能,而是如果你啓動一個進程,你失去控制這個過程的一個問題;-)
1
。操作系統可以控制其行爲(即內存佔用),但即使在這種情況下,我也無法想象如何實現這一點,正如jeffamaphone所說,任何限制最多隻是一個建議,而不是指令。一個進程可以調用外部靜態庫,COM實例等,所以我不能想象如何驗證/強制執行此限制。
2
NT Job objects(SetInformationJobObject & JOBOBJECT_BASIC_LIMIT_INFORMATION
)
相關問題
- 1. 有沒有辦法限制啓動時進程消耗的內存
- 2. 如何獲得已啓動進程的內存使用情況
- 3. 如何從ROOT權限的Android應用程序啓動進程
- 4. 如何啓動具有管理權限的進程
- 5. 如何啓動具有特定訪問權限的子進程
- 6. 進程啓動限制
- 7. 限制Linux進程內存
- 8. 如何在.NET和IIS中啓動具有受限權限的本機進程
- 9. 如何限制節點進程的CPU和內存使用率
- 10. Java Process Builder,程序進程啓動但程序沒有使用CPU或內存
- 11. 如何啓動具有更多內存的Java小程序?
- 12. 從java應用程序啓動外部進程 - 內存考慮
- 13. 降低已啓動進程的權限
- 14. 限制由System.Diagnostics.Process啓動的進程
- 15. Python:如何用管理員權限啓動進程?
- 16. 是否有任何方法限制進程的CPU /內存?
- 17. 如何啓動具有管理權限的應用程序?
- 18. 如何限制C shell啓動的後臺進程?
- 19. 如何限制GitLab啓動的git進程數量?
- 20. 如何用名稱啓動PHP進程?
- 21. 如何減少ASP.NET MVC應用程序啓動內存佔用?
- 22. Erlang:如何限制分配給進程的內存
- 23. 如何在具有高度受限特權的Linux上啓動進程?
- 24. 如何在沒有管理員權限的情況下啓動進程
- 25. 有限的優先級啓動子進程
- 26. 如何限制Linux上的進程內存使用率(例如,使用BSD :: Resource)
- 27. 在Linux下限制內存進程
- 28. 如何降低IOKit在進程啓動時保留的內存量?
- 29. 64位進程的進程內存限制
- 30. 可以在ASP.NET應用程序中啓動的進程數是否有限制?