Компания dotCloud открыла (http://blog.dotcloud.com/announcing-hipache-dotclouds-open-s...) пол лицензией MIT код высокопроизводительного прокси-сервера Hipache (https://github.com/dotcloud/hipache), оптимизированного для построения распределённой сети web-акселераторов, поддерживающих обработку обращений клиентов по протоколам HTTP и WebSocket. При этом поддержка WebSocket (https://www.opennet.ru/opennews/art.shtml?num=32547) является ключевой особенностью Hipache, который стал первым промышленным решением для высокопроизводительного проксирования WebSocket-трафика. Код проекта написан на языке JavaScript, базируется на библиотеке node-http-proxy (https://github.com/nodejitsu/node-http-proxy/) и работает под управлением серверной JavaScript-платформы Node.js.
Hipache был разработан для обеспечения перенаправления больших объемов трафика от десятков тысяч облачных приложений (вирутальных хостов), функционирующих в PaaS-сервисе dotCloud. Изначально подобные задачи решались с использованием nginx, использование которого не устроило отсутствием поддержки WebSocket и средств адаптации перенаправления трафика в сети с динамической топологией, в которой новые бэкенды создаются и удаляются с интенсивностью несколько раз в секунду.
Основные особенности Hipache:
- Поддержка балансировки нагрузки между несколькими бэкендами;
- Динамическое изменение конфигурации. Конфигурация задаётся в формате JSON и может быть сохранена в БД Redis (достаточно просто поменять параметры конфигурации в Redis и они сразу отразятся в работе прокси);
- Декларативное описание маршрутизации перенаправления запросов;
- Масштабирумость через создание многопроцессных обработчиков;
- Встроенные средства мониторинга состояния бэкендов с поддержкой горячего переключения на запасной бэкенд в случае сбоя и исключения проблемных бэкендов из списка активных обработчиков в пуле балансировки нагрузки;
- Автоматическое отслеживание потребления памяти. В случае превышения заданного лимита вследствии утечки памяти, проблемный процесс перезапускается;- Поддержка проксирования SSL-трафика (при установке на стороне прокси валидных SSL-ключей и сертификатов, используемых на основном сервере).
URL: http://blog.dotcloud.com/announcing-hipache-dotclouds-open-s...
Новость: https://www.opennet.ru/opennews/art.shtml?num=34523
> высокопроизводительного
> написан на языке JavaScriptАга. Следующий.
возможно, в своём классе он самый высокопроизводительный ;)
> возможно, в своём классе он самый высокопроизводительный ;)В классе, состоящем из него одного?
Ну как вам сказать, апачь, си, вроде не последние перцы делали, кладем статическую хтмлку hello world, запускаем ab, 3000 запр/сек. Тоже самое Node - 3300 внезапно)
> апачь, си, вроде не последние перцы делалиЗато архитектура у апача отвратительная. На nginx 20000 запросов в секунду (без keepalive) - легко, если поиграться с настройками - 30000. С keepalive мне удавалось получить 160000 запросов в секунду, правда, на весьма мощном сервере.
Отвратительная или нет вопрос другой, а реальный факт есть факт, далее раз уж так то давайте рассмотрим nginx, под виндой, для проверки кроссплатформенности так сказать, ноде пофиг, цифра таже, ибо на iocp, а nginx под виндой на селекте, реально не тестил, но не удивлюсь если он сольет)
> рассмотрим nginx, под виндой, для проверки кроссплатформенностиЗачем? Из чисто академического интереса? Меня не интересует производительность приложений на тех платформах, которые я не использую.
P.S. Если для вас так дорога винда, расскажите, пожалуйста, как в ней распараллеливать обработку прерываний и очередей сетевых интерфейсов по нескольким CPU? Без этого по-настоящему высокой производительности в задаче отдачи статики добиться не получится. Заранее спасибо.
> Меня не интересует производительность приложений на тех платформах, которые я не используюНу вот если вас окружающие не интересуют то так и скажите, а также то что у сей есть проблемы с кроссплатформенностью. Мне винда не дорога, моя бы воля посносил бы нафиг, но это реальность, также как апач стоящий на большинстве серверов, в т.ч. и под виндой, также как распространенность этой самой винды и мальчиков которые ее поддерживают, плохая архитектура или нет пофиг, а это реальность, и тут я как раз не чисто из академического интереса.
>> Меня не интересует производительность приложений на тех платформах, которые я не использую
> Ну вот если вас окружающие не интересуют то так и скажите, а
> также то что у сей есть проблемы с кроссплатформенностью. Мне винда
> не дорога, моя бы воля посносил бы нафиг, но это реальность,
> также как апач стоящий на большинстве серверов, в т.ч. и под
> виндой, также как распространенность этой самой винды и мальчиков которые ее
> поддерживают, плохая архитектура или нет пофиг, а это реальность, и тут
> я как раз не чисто из академического интереса.Вы для хостинга своих web проектов будете использовать винду?
Вот то-то и оно.
Если есть выбор, логично выбирать эффективные решения.
Если у кого-то нет выбора (и он использует windows), это его проблемы, а не nginx.
если заказчик так потребует то буду использовать винду, и таки да, выбирать эффективные решения, т.е. в данном случае Node а не nginx, то что nginx недостаточно кросплатформеннен это конечно не его проблемы)
Ну окей - так и запишем: Node - для вантузятников!
не надо тут за всех говорить
> если заказчик так потребует то буду использовать винду,А если заказчик попросит попой на кактус сесть? Сколько стоит сделать так чтобы вы селди попой на кактус? :)
попой не сяду, а вот использовать то что есть и нормально работает, а не выеживаться из религиозных убеждений - вполне адекватно :)
> попой не сяду, а вот использовать то что есть и нормально работает,
> а не выеживаться из религиозных убеждений - вполне адекватно :)Как по мне - возиться с серверами на винде не сильно приятнее чем садиться попой на кактус. А то что нжинкс у какого-то виндузятника работал на винде не очень и тот вместо того чтобы взять более подходящую для серверов систему накатал на жабаскрипте какую-то наколенщину - ну знаете, бывают конечно ушибленные люди, которые готовы горы воротить, лишь бы не обучаться ничему новому. Но это по-моему нифига не нормально.
Ды я с ними и не вожусь, с ними местные мальчики заказчика как правило возятся, зачастую потому что ничего др. не знают, и как вы правильно заметили знать не хотят. Нжинкс под виндой или апач не суть дело, оба с нодой сравнимы (под виндой), суть в самой ноде, в том что она кроссплатформенна, относительно проста и удобна, вместо того чтобы делать разные решения под разные системы, или заморачиваться с кроссплатформенностью на чемнить вроде сей, нода позволяет относительно не напряжно сделать единое решение, да еще и не фатально слить по производительности. Для ДЦ как тут уже замечалось разница в 3 скажем раза конечно существенна, а для например среднего сервера предприятия это зачастую абсолютно пофиг, ну сожрется у вас на серваке при 10 свободных гигах вместо 50 метров - 300, ну будет нагрузка не 3% а 7 - совершенно пофиг, зато серваки дополнительные организовывать не надо, разрабу кросплатформенность приятна, язык проще и т.п.
> Нжинкс под виндой или
> апач не суть дело, оба с нодой сравнимы (под виндой), суть
> в самой ноде, в том что она кроссплатформеннаРазница между кросплатформенными apache/nginx и кросплатформенной node в том, что она кросплатформенна.
5 баллов )> разрабу кросплатформенность приятна, язык проще и т.п.
А потом пойдите и поищите 20 разрабов под node.js )
> Разница между кросплатформенными apache/nginx и кросплатформенной node в том, что она кросплатформенна. 5 балловУважаемый наверное не знает как nginx кросплатформеннен под виндой и почему народ мягко говоря не рекомендует его там юзать? А про апач посмотрите выше.
Разрабов я искать не собираюсь, я сам на ней писать буду, посмотрю, если проявит себя то возможно и чтото серьезное, ну а если так то и др. со временем подтянутся.
>> Разница между кросплатформенными apache/nginx и кросплатформенной node в том, что она кросплатформенна. 5 баллов
> Уважаемый наверное не знает как nginx кросплатформеннен под виндой и почему народ
> мягко говоря не рекомендует его там юзать? А про апач
> посмотрите выше.Уважаемый знает.
Нужно писать "быстродействие", а не "кросплатформенность".> Разрабов я искать не собираюсь, я сам на ней писать буду, посмотрю,
> если проявит себя то возможно и чтото серьезное, ну а если
> так то и др. со временем подтянутся.Когда будете писать что-то серьёзное, вам понадобится команда коллег или подчиненных вам программистов.
С php-кодерами дела отлично, с python неплохо.
С node.js... возможно к тому моменту тоже будет нормально.
Ну, с кодерами понятно что пока проблема, но пока ничего серьезного и не собираюсь, а вот на кошечках потренируюсь) Вообще, знаете, так хохмы ради, у меня тут проект один есть, на сях вроде, людей не первый месяц ищем, так мне кажется что проще девочку взять и научить ее ноде с нуля, чем спеца под этот проект найти)
>Как по мне - возиться с серверами на винде не сильно приятнее чем садиться попой на кактус.Хорош бздеть. Глупая ассоциация, она как фонарный столб в середине комнаты: столь же глупа. Я так и представил картину: пришёл ты к заказчику, увидел винду и, чтобы не терять времени, снял штаны и сел на кактус.
Тебе говорят что есть условия при которых конкурирующий продукт таки может пригодиться, а ты ноешь что лично тебе это не нужно.
> давайте рассмотрим nginx, под виндойА чего не под хайкой или syllable?
да просто чтобы показать что и на старуху бывает проруха, тем более винда далеко не последняя ОС и широко распространена. Ребята решили опустить труд людей который очень многими востребован, им пофиг на остальных, они считают что они правы и подбирают показательные примеры, получают сдачи, ибо это не по человечи.
nginx на unix/linux - это пример из жизни.
nginx на win-сервере - это придуманный специально для демонстрации абстрактных тезисов кадавр.
эх еслибы, ато заказчиков показать у которых ничего кроме винды нет? и ставить не собираются, тут хоть чтонибудь бы нормальное поставить...
> ставить не собираются, тут хоть чтонибудь бы нормальное поставить...Винда на сервере под понятие "нормального" не попадает. Кадавр он и есть кадавр. По конской цене и с совершенно дебильными средствами удаленного администрирования.
и тем не менее она стоит на куче серверов, особенно в локалках, классический вариант - контроллер домена, а также зачастую сервера БД типа всяких ораклов, встречаются и файловые, и веб сервера, не поверите но у некоторых она даже на межсегментных шлюзах стоит :)
админ локал хоста обнаружен. пиши дальше мальчик - твоя непоредственность радует по утрам :)
> да просто чтобы показать что и на старуху бывает проруха, тем более
> винда далеко не последняя ОС и широко распространена.На серверах в интернете винда - жуткий изврат. Хотя кому и кактус сойдет за кресло.
кроме серверов в инете есть еще куча серверов в локалках, собственно под такие я в основном и работаю (внутрикорпоративные сайты и вебморды для разных внутренних служб), а там у конечных заказчиков очень и очень часто винда, и организовывать дополнительные сервера никто как правило не хочет/не может.
> кроме серверов в инете есть еще куча серверов в локалках, собственно под
> такие я в основном и работаю (внутрикорпоративные сайты и вебморды для
> разных внутренних служб),Ну понятно, ынтырпрайзный булшит и авторы этих наколенных поделий.
> а там у конечных заказчиков очень и очень часто винда, и организовывать
> дополнительные сервера никто как правило не хочет/не может.Сайты в интранете как правило являются столь жутким булшитом сделанным на коленке и работающем на вссяком г-не, что гордиться этим - круче чем гордиться работой на мусоровозе.
булшит не булшит а и вполне реальных задачек хватает.
>> кроме серверов в инете есть еще куча серверов в локалках, собственно под
>> такие я в основном и работаю (внутрикорпоративные сайты и вебморды для
>> разных внутренних служб),
> Ну понятно, ынтырпрайзный булшит и авторы этих наколенных поделий.
>> а там у конечных заказчиков очень и очень часто винда, и организовывать
>> дополнительные сервера никто как правило не хочет/не может.
> Сайты в интранете как правило являются столь жутким булшитом сделанным на коленке
> и работающем на вссяком г-не, что гордиться этим - круче чем
> гордиться работой на мусоровозе.какой принципиальный мальчик - сделалй что нить сам - а потом кричи :)
Хотя такого как ты я бы выгнал с работы с волчим билетом - ибо на работе надо работать - а не рассуждать о булшитах..
> давайте рассмотрим nginx, под виндойдавайте. в продакшн? админу табличку на лоб "сумасшедший". nginx под вендой нужен пионэрам чтоб потом перешли под нормальную ось.
не в продакшн а как было написано для проверки кроссплатформенности, очень вы все старательно пропускаете эту фразу) уж не знаю, может и правда как вы предполагаете первая доза, однако в любом случае очевидно что с портируемостью в консерватории чтото не не то)
> не в продакшн а как было написано для проверки кроссплатформенности,типа вскочил ночью, поставил на венду нгинкс, вздохнул с облегчением и - спать? что это за "проверка кроссплатформенности" такая? проверяйте IIS.
> как вы предполагаете первая доза, однако в любом случае очевидно что
> с портируемостью в консерватории чтото не не то)есть три серверные OS: *nix, *BSD и *Linux. вот там и проверяйте. переносимость nginx на bsd и linux отличная. под win вы лично можете пилить самостоятельно
В чем отвратительность архитектуры апача? Ты не путаешь случайно apache и его частный случай mpm_prefork?
> В чем отвратительность архитектуры апача? Ты не путаешь случайно apache и его
> частный случай mpm_prefork?В том что по дефолту сватают воркеры где создается тред на конект или процесс на конект. А остальные воркеры сильно экспериментальные. По поводу чего с этим тормозным утюгом много геморроя у всех. Пионерия по этому поводу валит дефолтный апач чуть ли не с мобильника с GPRS'ом, лишь бы он соединения делать умел.
да нет ничего в них эксперементального. просто не нужно юзать mod_php например или другой mod_* в качестве интерпретатора, а нужно юзать fast_cgi. собственно как и nginx.
> статическую хтмлку hello world, запускаем ab, 3000 запр/сек. Тоже самое Node
> - 3300 внезапно)...сносим неповоротливый утюг апач и берем nginx (тоже на си) и получаем в разы больше. Смотрим как любители node.js будут пыжиться его сделать :)
Вывод: кроме ЯП важен еще и алгоритм. Вот форкать на каждый запрос по процессу - это не самая лучшая идея. Особенно для статики или прокси. И апач в этом плане - утюг. Независимо от ЯП.
> ...сносим неповоротливый утюг апач и берем nginx (тоже на си) и получаем
> в разы больше. Смотрим как любители node.js будут пыжиться его сделать
> :)Никто в данном случае пыжиться его сделать не собирается, пример про апач и nginx приведен не с целью показать что нода быстрее, естественно в идеальном случае она всегда будет медленнее, а вот в реальном как показывают примеры не всегда, и все это сказано к тому что нельзя говорить мол нода однозначно фигня, по уровню производительности если и уступает то не фатально, при этом кроссплатформенна и многим удобнее.
> в идеальном случае она всегда будет медленнее, а вот в реальном
> как показывают примеры не всегда,Ну да, если условия примера специально подогнать, выбрав тормозной апач, которого нжинкс в добрый десяток раз на статике делает - тогда JS показательно побивает си и это преподносится скриптокидами как убер-достижение :)
> по уровню производительности если и уступает то не фатально,
Такие красивые виляния попой :). А где бенчи на более-менее одинаковом алгоритме?
> при этом кроссплатформенна
Вы так говорите как будто си не кроссплатформенный. А то что у виндов сетевая подсистема дохлее - так это, node.js ей же пользуется. Просто в силу общей тормознутости JS это менее заметно, при ломовых нагрузках сам движок JS сильнее зашьется :)
> и многим удобнее.
Ну вообще-то си первое место по популярности у явы отвоевал опять, так что он видимо тоже многим удобен. И чего? :)
когда нжинкс станет наиболее популярным и распространенным сервером как апач, тогда с ним сравнивать и буду, а пока какраз наоборот, пример не специально подогнанный а самый что ни на есть практический.более серьезные бенчи конечно бы не помешали, для общего развития, но в моем случае достаточно того что я привел, почти ничем кроме мультиплексирования запросов и отдачи готовых данных ноду я напрягать не собираюсь, данные обрабатываются контроллерами и базой, интерфейс строится клиентским JSом.
Си конечно кросплатформенный :) только достигается это гораздо большим гемороем.
И чего? - каждому свое и под задачу. А вот обсирать технологию будто она полная шняга, не учитывая ничего кроме производительности, как минимум глупо.
> когда нжинкс станет наиболее популярным и распространенным сервером как апачс разморозкой!
https://www.openstat.ru/counter:meta/trends/report/crawlerse...46 vs 42 по России.
и тем не менее отстает даже в самом лучшем случае, а в среднем сливает чуть ли не в 10 раз, меня еще в подгонке обвиняют)
> и тем не менее отстает даже в самом лучшем случаепо России "как апач" уже достигнуто, нет?
> меня еще в подгонке обвиняют)
еврейская фраза "наиболее популярным как апач" не даёт возможности обвинить в подгонке.
Hipache.class
>> высокопроизводительного
>> написан на языке JavaScript
> Ага. Следующий.На самом деле, конечно, не высокопроизводительного, а предназначенного для highload-решений.
При условии, разумеется, что бабла на железо никто не считает. Тут можно хоть на пистоне писать.
Будто бы хоть сколь значимый процент сишников его считает, также фигачат страшнейший тупейший неоптимизированный код, лишь бы работало, потом еще неделями с утечками борятся, все плюсы прохезали)
фантазёр. Если бы даже и так, то этот код примерно в десяток раз будет требовать меньше всего. Пусть возьмём хотя бы два раза. Есть для бизнеса разница, например, содержать 500 штук машин в ДЦ или 1000? И ещё стоит учесть, что не все сервисы/задачи в принципе масштабируются горизонтально, т.е. тупо увеличением кол-ва железа.
ды еслиб фантазер, понятно что си эффективнее, но труднее, кроме производительности есть не менее важные требования к скорости разработки и т.п, для ДЦ оно может и так как вы описали, только большинство программистов и задач не в ДЦ, бизнес фигли, очень многим частным конторам далеко не в первую очередь конечная прожорливость, главное задача решена и можно снять деньги, самое поганое что и многим заказчикам тоже положить. Еслиб разница была заоблочной то да, оно бы конечно лезло из всех щелей, а при разнице 2-3 раза, да еще и при выигрыше в скорости разработки и квалификации программистов, оно зачастую совершенно не существенно.
> ды еслиб фантазер, понятно что си эффективнее, но труднее, кроме производительности есть
> не менее важные требования к скорости разработки и т.п,"Я печатаю 500 знаков в минуту! Правда такая чепуха получается!" (почти о питонистах и скорости разработки)
> Будто бы хоть сколь значимый процент сишников его считает, также фигачат страшнейший
> тупейший неоптимизированный код, лишь бы работало, потом еще неделями с утечками
> борятся, все плюсы прохезали)Хреновый программист - хреново пишет на любом языке.
совершенно верно, но на языке который позволяет допустить меньше ошибок, и написать быстрее, конечный результат зачастую лучше, вопрос в критериях оценки, в любом случае это не говорит о безоговорочном преимуществе сей или JS, весь дьявол в конкретных деталях конкретной обстановки)
> совершенно верно, но на языке который позволяет допустить меньше ошибок, и написать
> быстрее, конечный результат зачастую лучше,А зачастую хуже, потому что для работы нанимается первый попавшийся имбецил. Который как-то по минимуму программить вроде бы умеет. А то что он почти не соображает и квалификация у него как у дворника - заказчику не очень заметно. Ну, по крайней мере, вот так сразу.
А питонисты вообще отдельная песня. Воплей о крутизне ЯП хоть отбавляй. А теперь попробуйте найти на нем хоть 1 продукт для веба, чтобы он был не страшный на вид, не тормозной как пипец и функционально не хуже остальных. И как, много продуктов нашлось? :)
>> совершенно верно, но на языке который позволяет допустить меньше ошибок, и написать
>> быстрее, конечный результат зачастую лучше,
> А зачастую хуже, потому что для работы нанимается первый попавшийся имбецил. Который
> как-то по минимуму программить вроде бы умеет. А то что он
> почти не соображает и квалификация у него как у дворника -
> заказчику не очень заметно. Ну, по крайней мере, вот так сразу.Эка вы по потерингу прошлись.. Имбицил который сказал что писать портируемый код не нужно - и достаточно что бы под linux работало. Хотя наверно это стоит расшифровать как - достаточно что бы под RedHat работало - а все остальные не волнуют.
раньше я бы плюсанул. но мне довелось как то столкнутся с одной плёвой задачкой - надо было один пхп скрипт с простейшим функционалом (буквально - пришёл клиент - скрипт сделал хттп запрос куда надо - отдал клиенту) реализовать в виде отдельного демона, поскольку клиентов было порядка 3кк в сутки, и это нагружало серваксначала я написал на перле, однако, поскольку на перле я писать толком не умею, получилась кака с загрузкой проца порядка 70%. потом написал на си - загрузка проца стала 7%, памяти порядка 4 метров, красота. однако времени я на это потратил с половину рабочего дня, с учётом того что на серваке стояла фряха, а я писал под линуксом, и просто так оно компилиться не захотелось
потом я рассказал об этой задаче одному знакомому, он почесал репу - и через 10 минут выдал мне 20 строк на яваскрипте. запустив на серваке, я получил загрузку проца 7% и 100 мбайт памяти. в итоге - яваскриптовый скрипт и работает в продакшне, поскольку при наличии 20гбайт памяти как то неприницпиально, 100 или 4 мб потребляет скрипт. а сишная прога, как выяснилось, падает через какое то время - по какой причине, я уже не стал разбираться, ибо смысла не было
мораль - для каждой задачи стОит использовать подходящие инструменты. node-js пишут очень классные спецы, он хорошо оптимизирован под каждую платформу. идеально вылизанный код на си будет работать быстрее (на какие то проценты) и будет потреблять значительно меньше памяти, однако затраты на разработку банально несопоставимы. и не стоит плеваться, едва увидив слово яваскрипт (как я когда то). такие дела
итого из вашего поста понятно, что вы не умеете писать ни на си, ни на перле.
причем тут джаваскрипт не понятно.
а из вашего поста любому профи понятно что вы просто выеживаетесь)
> а из вашего поста любому профи понятно что вы просто выеживаетесь)Не надо сводить объективные моменты к субъективным.
Если человеку, не разбирающемуся в программировании, поручают написание программы - результат может быть _абсолютно_ любой.
врядли чел это написавший совсем уж не разбирается, возможно он не спец в сях как и многие другие, или не спец в веб или еще как, но тему затронул правильную, то что си в принципе может быть быстрее совсем не значит что он лучше, т.к. есть куча др. моментов
А JavaScript тут при том, что и на нём писать человек не умеет. Но он решил задачу три раза (на Perl, C и JavaScropt) до получения удовлетворительного результата. И результат показал, что в его случае JavaScript был оптимальным выбором. А вы уже думайте сами...
Вообще-то на яваскрипте писал не он. Так, что делайте выводы, что оптимальней.
> Но он решил задачу три раза...Когда я решаю одну и ту же задачу 3 раза, то наилучшее решение почти всегда третье. И это мало зависит от используемых средств. Надо рассказывать почему так происходит?
=) ожидаемый коммент. ну, вам виднее какой я программист. так что спорить не собираюсь
> =) ожидаемый коммент. ну, вам виднее какой я программист. так что спорить
> не собираюсьСпорить не надо, назовите язык, который знаете. В вашем комментарии вы назвали три, которых не знаете. Два из них (ваши), не подошли, третье (чужое) подошло. Самый элементарный вывод напрашивается.
Да, напрашивается: на JS неквалифицированным лабухам проще писать. Он больше ощибок и раздолбайства прощает и не требует много от программиста. Правда вот кодом от таких "программистов" я бы пользоваться не стал. Скрипткидди он и в африке скрипткидди.
Мораль тут только одна - вы плохой программист. Потому что падала, потому что писали это дольше 10 минут (да, на C) и потому что написали тормозню сравнимую по скорости с JS дрянью. Последниц абзац вообще нет смысла комментировать - вы ещё и матчасть не знаете.
> Мораль тут только одна - вы плохой программист. Потому что падала, потому
> что писали это дольше 10 минут (да, на C) и потому
> что написали тормозню сравнимую по скорости с JS дрянью. Последниц абзац
> вообще нет смысла комментировать - вы ещё и матчасть не знаете.just for lulz - напишите это быстрее чем за 10 минут. нет, серьёзно. у меня это банально по размеру кода не влезет в 10 минут - там строк 300 получилось. простое рутинное создание сокетов, селект, цикл с перебором сокетов, парсинг хттп запроса. я не гуру в си, но меня умиляют такие спецы, которые судя по всему на си вообще ничего не писали
А не надо изобретать велосипеды. Есть библиотеки, их используйте. Я уверен, что ваш знакомый тоже не писал парсинг запросов на JavaScript.
> А не надо изобретать велосипеды. Есть библиотеки, их используйте. Я уверен, что
> ваш знакомый тоже не писал парсинг запросов на JavaScript.Ну так неужели не понятно что обезьянка освоила подключение "либ" в JS (где этого почти нет и каждый городит как умеет свои костыли, включая и nodeJS) а на сях - абизьян ниасилил или не знал что так можно. И пошел героически выписывать все самолично.
И это преподносится как "типа, сравнение ЯП". Хотя по факту это сравнение скиллов автора в одном ЯП и другом и степени его затупления в одном случае и другом.
> потом я рассказал об этой задаче одному знакомому, он почесал репу -
> и через 10 минут выдал мне 20 строк на яваскрипте.А если бы этот знакомый оказался не жабаскриптером, а сишником - он за те же 10 минут выдал бы неглючную и маложручую программу на сях.
> А если бы этот знакомый оказался не жабаскриптером, а сишником - он
> за те же 10 минут выдал бы неглючную и маложручую программу
> на сях.он, как и я, с++ник. пишет на Qt. яваскриптом он просто по фану увлёкся
>> А если бы этот знакомый оказался не жабаскриптером, а сишником - он
>> за те же 10 минут выдал бы неглючную и маложручую программу
>> на сях.
> он, как и я, с++ник. пишет на Qt. яваскриптом он просто по
> фану увлёксяНу и писали бы на С++. Прямо на Qt можно - http://doc.trolltech.com/solutions/3/qtservice/qtservice-exa...
А есть еще Boost, там еще проще.
Это ожидаемый результат. Во первых, там JIT работает, так что по факту JavaScript не интерпретируется а компилируется в native код, а сборщик мусора, отслеживание типов использует дополнительную память. А скорость приложения, как правило упирается в скорость передачи данных между оперативной памятью и кэшем процессора. Во вторых если действительно нужна оптимизация только ассемблером можно что-то реально оптимизировать C компилятор выедает далеко не оптимальный код.
> Это ожидаемый результат. Во первых, там JIT работает, так что по факту
> JavaScript не интерпретируется а компилируется в native код, а сборщик мусора,
> отслеживание типов использует дополнительную память. А скорость приложения, как правило
> упирается в скорость передачи данных между оперативной памятью и кэшем процессора.
> Во вторых если действительно нужна оптимизация только ассемблером можно что-то реально
> оптимизировать C компилятор выедает далеко не оптимальный код.я об этом и сказал. то, что на си потребовало б очень крутого спеца - на яваскрипте уже сделано за вас, девелоперами ноде. глупо не воспользоваться этими наработками
> крутого спеца - на яваскрипте уже сделано за вас, девелоперами ноде.
> глупо не воспользоваться этими наработкамиНа сях вообще-то тоже навалом библ для этого есть, поэтому лично бросаться грудью на амбразуру лезут только тупейшие нубы с синдромом NIH, что их жесточайше палит. Но в силу "хорошего" знания матчасти они об этом не подозревают и эпично палятся на форумах :). А потом еще и искренне удивляются: почему же это скрипткиддей считают тупыми неквалифицированными увальнями. Так вот за зашкаливающий уровень ламерства и считают :)
> мораль - для каждой задачи стОит использовать подходящие инструменты.Мораль: руки у вас кривые и на си вы программировать не умеете. Да, скриптокиддям JS лучше подходит, там думать не надо. Вот только когда становится вопрос о оптимизации расходов, 4Мб или 100 - довольно принципиально. Если у вас 20 гигз простаивают без дела - значит кто-то явно переплачивает в разы за оборудование и его содержание. Впрочем для энтерпрайзных гогнокодеров это типично: не они же парк серверов оплачивают. Вот когда его надо оплачивать самому - тут вон и фэйскнига что-то си++ полюбили в виде своего хипхопа.
да нет, просто 100 мбайт памяти стоят дешевле чем полдня работы программиста =) простая экономика. в отличие от анонимных аналитиков, руководствующих религиозными предпочтениями, в реальных задачах просто используются оптимальные инструментыизначально мордокнига была написана на пхп - это позволило быстро её сделать и запустить. с ростом нагрузки - было принято решение оптимизации. вроде всё просто
> да нет, просто 100 мбайт памяти стоят дешевле чем полдня работы программистаКак бы сильно зависит от. Если например эти 100 мегов сдавать в аренду - то за них надо регулярно платить (со стороны юзера) или их не получится продать (со стороны хостера) и постепенно натикает вполне себе сумма. А если это помножить на число виртуалочек которые можно развернуть на серваке с 20Гб - и подавно.
> =) простая экономика. в отличие от анонимных аналитиков, руководствующих религиозными
> предпочтениями, в реальных задачах просто используются оптимальные инструментыПростая экономика сферического гогнокодера в вакууме, который парится только о удобстве собственной задницы. А что случится со всеми остальными - по барабану.
> изначально мордокнига была написана на пхп - это позволило быстро её сделать
> и запустить. с ростом нагрузки - было принято решение оптимизации. вроде всё простоНу да, некоторые сначала создают себе проблемы, а потом героически их решают ударными темпами, когда жареный петух клюнул. В процессе прожект переписывается раз по пять с нуля :)
>> высокопроизводительного
>> написан на языке JavaScript
>Ага. Следующий.V8 использует JIT-компиляцию в машинный код.
В-принципе, его можно запустить и в браузере, таким нехитрым образом можно даже построить аналог тора на хомяках.
> В-принципе, его можно запустить и в браузере, таким нехитрым образом можно даже
> построить аналог тора на хомяках.nodejs просто так в браузере не запустишь.
>nodejs просто так в браузере не запустишь.нельзя просто так взять и запустить node.js в браузере
> В-принципе, его можно запустить и в браузере,Вот только у браузера нет стандартных методов открыть обычный TCP сокет. И это к лучшему. Потому что первым делом хаксоры бы собрали на основе XSS, JS injection и прочая эпичный ботнет для отсылки спама.
Кстати, уже был масс-бомбер IRC на основе браузера и XSS - ну вот как-то так: https://encyclopediadramatica.se/Firefox_XPS_IRC_Attack
Судя по описанию - породило массу лулзов, начиная от просто спама каналов до грамотных подстав IRC операторов, когда хак подсовывался в бложики операторов после чего операторы начинали гасить друг друга за спам со своих же адресов :)
Когда Hamachi откроют?
интересно.. почему такое странное название
Думаю, что подразумевалось что-то вроде HIgh-performance aPACHE.
hipster apache =)
> hipster apache =)Тогда уж надо было iPache.
Маркетологам стартапа зачот, засветились! Торговая марка в раскрутке!
Одмины-хиппи и одмины-хипхоперы жмурятся от удовольствия.
Дочитал до слов "написан на джаваскрипт". Остальное сразу стало неинтересно...
Значит вам не интересен JS и таким образом вы сами ограничиваете свой кругозор)
> Значит вам не интересен JS и таким образом вы сами ограничиваете свой
> кругозор)Логично предположить, что ему неинтересны извраты как таковые (например, использование JS на сервере).
JS это всего лишь язык, синтаксис, за которым могут скрываться любые реализации, посему вопрос о извратах весьма не очевиден.
Полезная штучка, большое спасибо. Особенно заинтересовали WebSocket ... ч