我有一個腳本服務器,可以在我們的服務器上運行任意的Java腳本代碼。在任何時候,可以運行多個腳本,並且我希望防止一個行爲不當的腳本吃掉機器上的所有內存。我可以通過讓每個腳本在自己的進程中運行並使用現成的監視工具來監視每個進程的RAM使用情況,從而殺死並重新啓動那些無法使用的腳本。我不想這樣做,因爲我希望避免每次發生這些腳本中的任何一個變得瘋狂時重新啓動二進制文件的代價。有沒有辦法在第8版中設置每個上下文/隔離內存限制,以便我可以使用沙箱運行腳本?限制V8內存上下文
2
A
回答
0
這不可靠。 此進程的所有JavaScript上下文共享相同的對象堆。
WebKit/Chromium嘗試一些東西來禁用上下文OOM之後的上下文。 http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/v8/V8Proxy.cpp&exact_package=chromium&q=V8Proxy&type=cs&l=361
來源:
1
應該很容易現在要做的
context.EstimatedSize()
獲得上下文的估計大小isolate.TerminateExecution()
當背景外出可接受內存/ CPU使用率/不管
,以獲得訪問,如果有一個無限循環(或別的東西阻擋,如高CPU計算)我想你可以使用isolate.RequestInterrupt()
0
單個過程可以運行多個分離物,如果有1株1個上下文比率可以很容易地
- 限制存儲器每分離使用
- GET堆統計
請參閱本一些例子承諾:
https://github.com/discourse/mini_racer/commit/f7ec907547e9a6ea888b2587e4edee3766752dd3
尤其是你:
v8::HeapStatistics stats;
isolate->GetHeapStatistics(&stats);
也有像內存花哨的功能您可以使用分配回調。
相關問題
- 1. Node.js(和chrome V8)中的內存限制
- 2. 限制上下文菜單
- 3. Eclipse內存限制
- 4. iPad內存限制
- 5. PHP內存限制
- 6. .Net內存限制
- 7. PHP內存限制
- 8. .NET內存限制
- 9. MongoDB限制內存
- 10. PHP內存限制
- 11. Iphone限制內存
- 12. PHP - 內存限制
- 13. PHP內存限制
- 14. MIPS內存限制?
- 15. WordPress內存限制
- 16. EhCache內存限制
- 17. CUDA內存限制
- 18. V8內存使用情況
- 19. 在Node.js應用程序中,V8內存限制可能導致什麼壞處?
- 20. 文件在php下載,內存限制問題?
- 21. PHP文件搜索內存限制
- 22. 適用於有限內存設備的V8版Node.js?
- 23. Api.ai上下文限制(每個意圖10個上下文)
- 24. 限制sonata_type_model_list到1上下文
- 25. 限制在上下文菜單
- 26. 將數字限制在上限/下限?
- 27. MediaWiki在上傳文件時耗盡PHP的內存限制
- 28. 內存限制用盡
- 29. GAE軟內存限制
- 30. imagecreatetruecolor()的內存限制?
看起來不像那樣:https://github.com/v8/v8/blob/42ba9ef7242dad4bef42464c50ea9c526ee6f005/src/api.cc#L6696 – 2017-07-13 21:05:33