2012-04-23 35 views
2

我有一個腳本服務器,可以在我們的服務器上運行任意的Java腳本代碼。在任何時候,可以運行多個腳本,並且我希望防止一個行爲不當的腳本吃掉機器上的所有內存。我可以通過讓每個腳本在自己的進程中運行並使用現成的監視工具來監視每個進程的RAM使用情況,從而殺死並重新啓動那些無法使用的腳本。我不想這樣做,因爲我希望避免每次發生這些腳本中的任何一個變得瘋狂時重新啓動二進制文件的代價。有沒有辦法在第8版中設置每個上下文/隔離內存限制,以便我可以使用沙箱運行腳本?限制V8內存上下文

回答

0
1

應該很容易現在要做的

  • context.EstimatedSize()獲得上下文的估計大小
  • isolate.TerminateExecution()當背景外出可接受內存/ CPU使用率/不管

,以獲得訪問,如果有一個無限循環(或別的東西阻擋,如高CPU計算)我想你可以使用isolate.RequestInterrupt()

+0

看起來不像那樣:https://github.com/v8/v8/blob/42ba9ef7242dad4bef42464c50ea9c526ee6f005/src/api.cc#L6696 – 2017-07-13 21:05:33