2015-07-25 2 views
1

В настоящее время я изучаю, как использовать NightmareJS. Я обнаружил, что производительность настолько медленная, пока я запускал код ниже. Чтобы получить выход, потребовалось до 30 секунд. Я сделал что-то неправильно?Медленная производительность на Mac OS X

Кроме того, я попытался использовать wait() с селектором, но это не очень помогает.

Я не уверен, связано ли это с моим подключением к Интернету, однако, открывайте тот же сайт с помощью Google Chrome и выполняйте ту же задачу быстрее, чем используя Nightmare.

Soruce Код

var Nightmare = require('nightmare'); 

var after; 
var before = Date.now(); 

new Nightmare({ 
    loadImages: false 
    }).goto('https://www.wikipedia.org/') 
    .type('#searchInput', process.argv[2]) 
    .click('input[name="go"]') 
    .wait() 
    .url(function(url) { 
    after = Date.now(); 
    console.log('>>> [' + (after - before)/1000.0 + 's] ' + url); 
    }) 
    .run(function(err, nightmare) { 
    if (err) console.log(err); 
    }); 

Выход

node n02_extract_wiki_link.js "node.js" 
>>> [31.227s] https://en.wikipedia.org/wiki/Node.js 

Моя текущая среда приведена ниже.

Mac OS X 10.10.4 
node v0.12.5 
PhantomJS 2.0.0 
[email protected] 

ответ

1

Это работает для меня:
https://github.com/segmentio/nightmare/issues/126#issuecomment-75944613

Это гнездо подключения между модулем phantomjs и это зависимость, обувь.

Вы можете вручную отредактировать обувь самостоятельно. Перейти в node_modules/фантомы/обувь/index.js и изменения линии 8 читать

var server = sockjs.createServer({ 
     heartbeat_delay : 200 
});