ИМХО: PHP разработчиков намного больше чем Ruby. Соответственно и конкуренция на Ruby меньше == стоимость за работу больше. Плюс ко всему математичиские задачи Ruby более быстро обрабатывает. elliottback.com/wp/ruby-vs-php-performance-revisited
Я не думаю что смогу вам помочь,кроме как посоветовать внемательно изучить и проанализировать логику работы своего кода, убедиться строчка за строчкой что вы делаете все как в примерах тех.доков на офф. сайте. Убедитесь что вы используете только стандартный модуль, что сессия стартует раньше чем вы к ней обращаетесь.
тут уже нужно смотреть по коду. я думаю что у вас скорее всего из-за неправильной работы с модулем сессии. Вы раньше работали с сессиями через Code Igniter ? Или это ваш первый опыт?
Разрабатывал я когда-то универсальный кикабельный парсер веб-ресурсов с модулем паука на борту. Проект был коммерчески большего масштаба, по-этому мне кажется не хорошо выкладывать хорошо документированный ООП код в сеть в свободный доступ, все-таки денги за это платились не малые. Я поделюсь отдельными частями проекта:
/**
* Class Web_Processor - мультипоточный загрузчик!
*
* !!!!! - Будет зависать если идет работа с сессией! делдать session_write_close() перед вызовом!
*
*/
class Web_Processor {
protected $conf;
/** var \Web_Response[]*/
protected $response = array();
public function __construct(array $urls, Web_Configurator &$conf){//multi thread
$this->conf = &$conf;
// инициализируем "контейнер" для отдельных соединений (мультикурл)
$cmh = curl_multi_init();
// массив заданий для мультикурла
$tasks = array();
// перебираем наши урлы
foreach ($urls as $url) {
// инициализируем отдельное соединение (поток)
$ch = curl_init($url); //URL запроса
// если будет редирект - перейти по нему
curl_setopt($ch, CURLOPT_AUTOREFERER, $_autoreferrer); //для автоматической установки поля Referer: в запросах, перенаправленных заголовком Location:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $_follow_loc); //для следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "Location: ", за исключением случая, когда установлена константа CURLOPT_MAXREDIRS
curl_setopt($ch, CURLOPT_MAXREDIRS, $_max_redirects); //Максимальное количество принимаемых редиректов. Используйте этот параметр вместе с параметром CURLOPT_FOLLOWLOCATION
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //FIX для "HTTPS://" - без цього не хоче грузити контент
curl_setopt($ch, CURLOPT_HEADER, 0); // TRUE для включения заголовков в вывод.
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $_connection_timeout); // Количество секунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания.
curl_setopt($ch, CURLOPT_TIMEOUT, $_curl_timeout); //Максимально позволенное количество секунд для выполнения cURL-функций
//
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // TRUE для возврата результата передачи в качестве строки из curl_exec() вместо прямого вывода в браузер.
curl_setopt($ch, CURLINFO_HTTP_CODE, true); // ВОЗВРАТ КОДОВ СОСТОЯНИЯ
Вечером попробую - дам знать о результатах. Но дело в том что если бы кнопка залипла - то в биосе я бы увидел анимацию переходов по меню, а так - могу только в лево, в право и вниз тыкать
На сколько я помню: Эти звуки происходят в момент "Detecting memory freequency 333" - или как-то так (сейчас на работе, по этому не могу точнее сказать). После прослушивания этой "полифонии" автоматом запускается биос. За этим ПК лично я - работаю редко. Поэтому сейчас могу ошибаться, но походу перестала работать кнопка "стрелка вверх" на подключенной USB клавиатуре. Может ли быть такое - что сам контроллер клавиатуры "сошел с ума" и находиться в полурабочем состоянии, и ПК конфликтует с этим устройством?