2017-08-03 30 views
0

我正在使用webdriver.io運行我的測試,而下面的錯誤。經過分析,我意識到我需要增加內存空間。但不知道如何與webdriver.io做到這一點。在節點中,我知道它使用node --max_old_space_size=2048完成。webdriver.io加工出來的記憶 - 如何增加類似的內存空間大小到節點--max_old_space_size = 2048

如何做同樣與webdriver.io?

<--- Last few GCs ---> 

9251010 ms: Mark-sweep 1352.8 (1458.1) -> 1352.7 (1458.1) MB, 2938.1/0 ms [allocation failure] [GC in old space requested]. 
9253943 ms: Mark-sweep 1352.7 (1458.1) -> 1352.8 (1458.1) MB, 2932.4/0 ms [allocation failure] [GC in old space requested]. 
9256877 ms: Mark-sweep 1352.8 (1458.1) -> 1352.1 (1457.1) MB, 2934.5/0 ms [last resort gc]. 
9259812 ms: Mark-sweep 1352.1 (1457.1) -> 1298.1 (1458.1) MB, 2935.1/0 ms [last resort gc]. 


<--- JS stacktrace ---> 

==== JS stack trace ========================================= 

Security context: 0x3faa6f6e3ac1 <JS Object> 
    1: DefineObjectProperty [native v8natives.js:~464] [pc=0x3524a7536435] (this=0x39f056913eb9 <JS Global Object>,K=0x1ebe9c167ff1 <an Object with map 0x107d9d0fff21>,W=0x3cc73ab4c6d9 <String[7]: strings>,H=0x1ebe9c164fb9 <a PropertyDescriptor with map 0x1ae8ebfa37a1>,Z=0x3faa6f604231 <true>) 
    2: DefineOwnProperty [native v8natives.js:~633] [pc=0x3524a6c8a597] (this=0x39f056913eb9 <JS Globa... 

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory 

回答

1

我不認爲it's webdriver.io相關的問題,因爲第一,如果搜索內存設置和第二件事是主要的程序,你不容找到什麼是節點,這意味着你需要編輯這些硬件設置只爲node.js的

你嘗試
--max_new_space_size

什麼你與你的腳本,你有內存錯誤做,請發送code.Are你讀一些巨大的數據?另外你使用節點--max_old_space_size = 2048,爲什麼不提高到4096或者可能這可以幫助
--max_old_space_size = 4096 --optimize_for_size --max_executable_size = 4096 --stack_size = 4096

+0

雅阿,問題不相關到webdriver.io。閱讀完文檔後,我意識到我可以在'wdio.conf.js'中使用'execArgv:[' - max_old_space_size = 5120']'爲節點js進程分配更多的內存。這幫助我增加了內存空間。但真正的原因是在函數調用中改變對象。是的,我確實閱讀了巨大的數據,導致了對象的大尺寸,然後出現了內存不足的問題。在我更改我的代碼以不改變並簡單地返回期望對象之後,總體上它更加穩定。 – joy

+0

啊很酷的傢伙很好2知道:)。事情是大多數人在電腦中使用16GB RAM,或者他們使用vps/root服務器與node.js結合使用 - 如果您的舊電腦的內存不足,這是一個非常大的問題。^^但是嘗試將所有內容都塊化替代。 – t33n

相關問題