Я использую GCC 4.6.0 ( на другой неопознанной платформе ).
Я использую используя функцию crypt ()
для шифрования пароля.
Я никогда раньше не использовал эту функцию, поэтому я заглянул на главную страницу:
man 3 crypt
И там говорится, что нужно включить unistd.h
заголовок.
Однако, когда я это сделал, я получил неявное предупреждение для функции crypt
.
warning: implicit declaration of function ‘crypt’ [-Wimplicit-function-declaration]
Я немного поискал и обнаружил, что вы должны включить crypt.h
.
У меня есть поисковый робот, который я написал на Node.js. Я бы предпочел использовать Ruby, поэтому переписал его в EventMachine. Поскольку оригинал был на CoffeeScript, на самом деле это было на удивление легко, и код почти такой же, за исключением того, что в EventMachine я действительно могу перехватывать и восстанавливать исключения (поскольку я использую волокна).
Проблема в том, что тесты, которые выполняются менее чем за 20 секунд в коде Node.js, занимают до 5 минут и более на EventMachine. Когда я смотрю количество подключений, кажется, что они даже не работают параллельно (они выстраиваются в очередь до сотен, а затем очень медленно спускаются), хотя регистрация показывает, что кодовые точки попадают в параллельно.
Я понимаю, что без кода вы не можете точно знать, что происходит, но мне просто было интересно, есть ли какая-то основная разница, и я должен сдаться, или они действительно должны иметь возможность работать примерно так же быстро (небольшое замедление в порядке), и я должен продолжать пытаться выяснить, в чем проблема .
Я сделал следующее, но на самом деле это не дало никакого эффекта:
puts "Running with ulimit: " + EM.set_descriptor_table_size(60000).to_s
EM.set_effective_user('nobody')
EM.kqueue
О, и я очень уверен, что у меня нет никаких блокирующих вызовов в EventMachine. Я прочесал каждую строчку около 10 раз в поисках того, что может блокировать. Все мои сетевые вызовы - EM :: HttpRequest.