Здравствуйте, Mons. > Пожалуй в данном вопросе стоит начать с того, что CPU-арифметика > никак не сильный конёк перла. (Кстати, удивлён, что никто не > затестил CUDA)
> Во вторых - CPU-intensive задачи выгоднее решать именно в синхронной > модели. Асинхрон рулит только тогда, когда переключение контекста > планировщиком OS становится дороже, чем “ручное" управление > контекстами при помощи event-машины. > Ну и в третьих, хотелось бы спросить: какое отношение данная задача > имеет к реальной жизни? Можно затестить работу по http 1.1 с keep-alive. Например, на GET-запрос к /ping?r=12345 всегда выдавать ответ в теле "pong: 12346" , т.е. на единицу больше, чем было в параметре r. А на все остальные запросы отвечать 404-ой ошибкой. Парсить url обязательно, т.е. просто выкусывать из урла параметр r нельзя. Парсить http-заголовки тоже обязательно. Вместо эталонной реализации на С подойдёт nginx, где через return и map можно реализовать отдачу нужного тела (для уменьшения размера конфига nginx-а можно ограничить значения r от 0 до 1000). В идеале взять какой-нить современный сервер, где ядер побольше, например Core i7, с современным 64-битным Лунуксом или Фрёй и гигабитной сетевухой. И было б вообще идеально запускать запросы по сети с другого сервера. Но можно и какой-нить попроще сервер/сервера найти. Есть у кого-нить 2 ненагруженных сервера? Результаты измерять с десятой секунды, если конечно такое конечно возможно, чтобы реализации с форками успели подстроиться под нагрузку и нафоркать нужное им количество воркеров. Измерять то, что умеет измерять тестирующая тулза. Такая задача легко реализуема и больше похожа на реальную. Можно было б ещё к БД или мемкешеду ходить, но ИМХО от них будет много шума в измерениях, особенно от БД. Хотя можно мемкешедом ограничиться, например, читать 10 ключей key1-10 и когда они все прочитаны (успешно или нет, не важно), сохранять в мемкешед текущее значение r и после успешного сохранения выдавать ответ. В nginx-е чтение ключей наверное можно через ssi сделать, а запись в мемкешед только через встроенный перл, но это не чистый С тогда выйдет. -- С уважением, Михаил mailto:[email protected] -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
