The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Компания dotCloud открыла код высокопроизводительного http-прокси Hipache

08.08.2012 16:54

Компания dotCloud открыла под лицензией MIT код высокопроизводительного прокси-сервера Hipache, оптимизированного для построения распределённой сети web-акселераторов, поддерживающих обработку обращений клиентов по протоколам HTTP и WebSocket. При этом поддержка WebSocket является ключевой особенностью Hipache, который стал первым промышленным решением для высокопроизводительного проксирования WebSocket-трафика. Код проекта написан на языке JavaScript, базируется на библиотеке node-http-proxy и работает под управлением серверной JavaScript-платформы Node.js.

Hipache был разработан для обеспечения перенаправления больших объемов трафика от десятков тысяч облачных приложений (виртуальных хостов), функционирующих в PaaS-сервисе dotCloud. Изначально подобные задачи решались с использованием nginx, использование которого не устроило отсутствием поддержки WebSocket и средств адаптации перенаправления трафика в сети с динамической топологией, в которой новые бэкенды создаются и удаляются с интенсивностью несколько раз в секунду.

Основные особенности Hipache:

  • Поддержка балансировки нагрузки между несколькими бэкендами;
  • Динамическое изменение конфигурации. Конфигурация задаётся в формате JSON и может быть сохранена в БД Redis (достаточно просто поменять параметры конфигурации в Redis и они сразу отразятся в работе прокси);
  • Декларативное описание маршрутизации перенаправления запросов;
  • Масштабирумость через создание многопроцессных обработчиков;
  • Встроенные средства мониторинга состояния бэкендов с поддержкой горячего переключения на запасной бэкенд в случае сбоя и исключения проблемных бэкендов из списка активных обработчиков в пуле балансировки нагрузки;
  • Автоматическое отслеживание потребления памяти. В случае превышения заданного лимита вследствии утечки памяти, проблемный процесс перезапускается;
  • Поддержка проксирования SSL-трафика (при установке на стороне прокси валидных SSL-ключей и сертификатов, используемых на основном сервере).


  1. Главная ссылка к новости (http://blog.dotcloud.com/annou...)
  2. OpenNews: Протокол WebSocket перешёл на стадию "предложенного стандарта" Интернет
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/34523-websocket
Ключевые слова: websocket, proxy, http, hipache
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (97) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 17:16, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    > высокопроизводительного
    > написан на языке JavaScript

    Ага. Следующий.

     
     
  • 2.5, umbr (ok), 17:42, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    возможно, в своём классе он самый высокопроизводительный ;)
     
     
  • 3.8, Аноним (-), 18:03, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > возможно, в своём классе он самый высокопроизводительный ;)

    В классе, состоящем из него одного?

     
     
  • 4.23, Аноним (-), 20:49, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну как вам сказать, апачь, си, вроде не последние перцы делали, кладем статическую хтмлку hello world, запускаем ab, 3000 запр/сек. Тоже самое Node - 3300 внезапно)
     
     
  • 5.25, Аноним (-), 22:02, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > апачь, си, вроде не последние перцы делали

    Зато архитектура у апача отвратительная. На nginx 20000 запросов в секунду (без keepalive) - легко, если поиграться с настройками - 30000. С keepalive мне удавалось получить 160000 запросов в секунду, правда, на весьма мощном сервере.

     
     
  • 6.28, Аноним (-), 22:12, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Отвратительная или нет вопрос другой, а реальный факт есть факт, далее раз уж так то давайте рассмотрим nginx, под виндой, для проверки кроссплатформенности так сказать, ноде пофиг, цифра таже, ибо на iocp, а nginx под виндой на селекте, реально не тестил, но не удивлюсь если он сольет)
     
     
  • 7.30, Аноним (-), 22:34, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > рассмотрим nginx, под виндой, для проверки кроссплатформенности

    Зачем? Из чисто академического интереса? Меня не интересует производительность приложений на тех платформах, которые я не использую.

    P.S. Если для вас так дорога винда, расскажите, пожалуйста, как в ней распараллеливать обработку прерываний и очередей сетевых интерфейсов по нескольким CPU? Без этого по-настоящему высокой производительности в задаче отдачи статики добиться не получится. Заранее спасибо.

     
     
  • 8.31, Аноним (-), 22:46, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну вот если вас окружающие не интересуют то так и скажите, а также то что у сей ... текст свёрнут, показать
     
     
  • 9.46, XoRe (ok), 01:56, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы для хостинга своих web проектов будете использовать винду Вот то-то и оно Е... текст свёрнут, показать
     
     
  • 10.47, Аноним (-), 02:15, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если заказчик так потребует то буду использовать винду, и таки да, выбирать эффе... текст свёрнут, показать
     
     
  • 11.49, anonimouse (?), 05:47, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну окей - так и запишем Node - для вантузятников ... текст свёрнут, показать
     
     
  • 12.51, Аноним (-), 09:56, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    не надо тут за всех говорить ... текст свёрнут, показать
     
  • 11.68, Аноним (-), 16:38, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А если заказчик попросит попой на кактус сесть Сколько стоит сделать так чтобы ... текст свёрнут, показать
     
     
  • 12.71, Аноним (-), 16:55, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    попой не сяду, а вот использовать то что есть и нормально работает, а не выежива... текст свёрнут, показать
     
     
  • 13.78, Аноним (-), 17:24, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как по мне - возиться с серверами на винде не сильно приятнее чем садиться попой... текст свёрнут, показать
     
     
  • 14.83, Аноним (-), 17:48, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ды я с ними и не вожусь, с ними местные мальчики заказчика как правило возятся, ... большой текст свёрнут, показать
     
     
  • 15.92, XoRe (ok), 16:02, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Разница между кросплатформенными apache nginx и кросплатформенной node в том, чт... текст свёрнут, показать
     
     
  • 16.94, Аноним (-), 16:35, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Уважаемый наверное не знает как nginx кросплатформеннен под виндой и почему наро... текст свёрнут, показать
     
     
  • 17.95, XoRe (ok), 18:42, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Уважаемый знает Нужно писать быстродействие , а не кросплатформенность Когд... текст свёрнут, показать
     
     
  • 18.96, Аноним (-), 21:19, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, с кодерами понятно что пока проблема, но пока ничего серьезного и не собираю... текст свёрнут, показать
     
  • 14.103, Тот_Самый_Анонимус (?), 07:37, 16/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Хорош бздеть Глупая ассоциация, она как фонарный столб в середине комнаты стол... текст свёрнут, показать
     
  • 7.35, Аноним (-), 00:47, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > давайте рассмотрим nginx, под виндой

    А чего не под хайкой или syllable?

     
     
  • 8.41, Аноним (-), 00:56, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    да просто чтобы показать что и на старуху бывает проруха, тем более винда далеко... текст свёрнут, показать
     
     
  • 9.42, Аноним (-), 01:06, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    nginx на unix linux - это пример из жизни nginx на win-сервере - это придуманны... текст свёрнут, показать
     
     
  • 10.44, Аноним (-), 01:23, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    эх еслибы, ато заказчиков показать у которых ничего кроме винды нет и ставить н... текст свёрнут, показать
     
     
  • 11.79, Аноним (-), 17:26, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Винда на сервере под понятие нормального не попадает Кадавр он и есть кадавр ... текст свёрнут, показать
     
     
  • 12.84, Аноним (-), 17:55, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    и тем не менее она стоит на куче серверов, особенно в локалках, классический вар... текст свёрнут, показать
     
  • 12.97, Аноним (-), 08:45, 11/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    админ локал хоста обнаружен пиши дальше мальчик - твоя непоредственность радует... текст свёрнут, показать
     
  • 9.70, Аноним (-), 16:43, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    На серверах в интернете винда - жуткий изврат Хотя кому и кактус сойдет за крес... текст свёрнут, показать
     
     
  • 10.74, Аноним (-), 17:06, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    кроме серверов в инете есть еще куча серверов в локалках, собственно под такие я... текст свёрнут, показать
     
     
  • 11.80, Аноним (-), 17:32, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну понятно, ынтырпрайзный булшит и авторы этих наколенных поделий Сайты в интр... текст свёрнут, показать
     
     
  • 12.85, Аноним (-), 18:32, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    булшит не булшит а и вполне реальных задачек хватает ... текст свёрнут, показать
     
  • 12.98, Аноним (-), 08:46, 11/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    какой принципиальный мальчик - сделалй что нить сам - а потом кричи Хотя тако... текст свёрнут, показать
     
  • 7.87, Клыкастый (ok), 20:03, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >  давайте рассмотрим nginx, под виндой

    давайте.  в продакшн? админу табличку на лоб "сумасшедший". nginx под вендой нужен пионэрам чтоб потом перешли под нормальную ось.

     
     
  • 8.89, Аноним (-), 21:32, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    не в продакшн а как было написано для проверки кроссплатформенности, очень вы вс... текст свёрнут, показать
     
     
  • 9.102, Клыкастый (ok), 00:29, 14/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    типа вскочил ночью, поставил на венду нгинкс, вздохнул с облегчением и - спать ... текст свёрнут, показать
     
  • 6.58, user455 (?), 13:20, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В чем отвратительность архитектуры апача? Ты не путаешь случайно apache и его частный случай mpm_prefork?
     
     
  • 7.60, Аноним (-), 15:36, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > В чем отвратительность архитектуры апача? Ты не путаешь случайно apache и его
    > частный случай mpm_prefork?

    В том что по дефолту сватают воркеры где создается тред на конект или процесс на конект. А остальные воркеры сильно экспериментальные. По поводу чего с этим тормозным утюгом много геморроя у всех. Пионерия по этому поводу валит дефолтный апач чуть ли не с мобильника с GPRS'ом, лишь бы он соединения делать умел.

     
     
  • 8.100, user455 (?), 20:59, 13/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    да нет ничего в них эксперементального просто не нужно юзать mod_php например и... текст свёрнут, показать
     
  • 5.59, Аноним (-), 15:33, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > статическую хтмлку hello world, запускаем ab, 3000 запр/сек. Тоже самое Node
    > - 3300 внезапно)

    ...сносим неповоротливый утюг апач и берем nginx (тоже на си) и получаем в разы больше. Смотрим как любители node.js будут пыжиться его сделать :)

    Вывод: кроме ЯП важен еще и алгоритм. Вот форкать на каждый запрос по процессу - это не самая лучшая идея. Особенно для статики или прокси. И апач в этом плане - утюг. Независимо от ЯП.

     
     
  • 6.77, Аноним (-), 17:23, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ...сносим неповоротливый утюг апач и берем nginx (тоже на си) и получаем
    > в разы больше. Смотрим как любители node.js будут пыжиться его сделать
    > :)

    Никто в данном случае пыжиться его сделать не собирается, пример про апач и nginx приведен не с целью показать что нода быстрее, естественно в идеальном случае она всегда будет медленнее, а вот в реальном как показывают примеры не всегда, и все это сказано к тому что нельзя говорить мол нода однозначно фигня, по уровню производительности если и уступает то не фатально, при этом кроссплатформенна и многим удобнее.

     
     
  • 7.81, Аноним (-), 17:36, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, если условия примера специально подогнать, выбрав тормозной апач, которог... большой текст свёрнут, показать
     
     
  • 8.86, Аноним (-), 19:06, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    когда нжинкс станет наиболее популярным и распространенным сервером как апач, то... текст свёрнут, показать
     
     
  • 9.88, Клыкастый (ok), 20:17, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    с разморозкой https www openstat ru counter meta trends report crawlerserver... текст свёрнут, показать
     
     
  • 10.90, Аноним (-), 21:42, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    и тем не менее отстает даже в самом лучшем случае, а в среднем сливает чуть ли н... текст свёрнут, показать
     
     
  • 11.101, Клыкастый (ok), 00:17, 14/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    по России как апач уже достигнуто, нет еврейская фраза наиболее популярным к... текст свёрнут, показать
     
  • 4.27, Lightnin Hopkins (??), 22:06, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Hipache.class
     
  • 2.7, Аноним (-), 18:03, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> высокопроизводительного
    >> написан на языке JavaScript
    > Ага. Следующий.

    На самом деле, конечно, не высокопроизводительного, а предназначенного для highload-решений.
    При условии, разумеется, что бабла на железо никто не считает. Тут можно хоть на пистоне писать.

     
     
  • 3.22, Аноним (-), 20:43, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Будто бы хоть сколь значимый процент сишников его считает, также фигачат страшнейший тупейший неоптимизированный код, лишь бы работало, потом еще неделями с утечками борятся, все плюсы прохезали)
     
     
  • 4.24, Аноним (-), 21:43, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    фантазёр. Если бы даже и так, то этот код примерно в десяток раз будет требовать меньше всего. Пусть возьмём хотя бы два раза. Есть для бизнеса разница, например, содержать 500 штук машин в ДЦ или 1000? И ещё стоит учесть, что не все сервисы/задачи в принципе масштабируются горизонтально, т.е. тупо увеличением кол-ва железа.
     
     
  • 5.26, Аноним (-), 22:06, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    ды еслиб фантазер, понятно что си эффективнее, но труднее, кроме производительности есть не менее важные требования к скорости разработки и т.п, для ДЦ оно может и так как вы описали, только большинство программистов и задач не в ДЦ, бизнес фигли, очень многим частным конторам далеко не в первую очередь конечная прожорливость, главное задача решена и можно снять деньги, самое поганое что и многим заказчикам тоже положить. Еслиб разница была заоблочной то да, оно бы конечно лезло из всех щелей, а при разнице 2-3 раза, да еще и при выигрыше в скорости разработки и квалификации программистов, оно зачастую совершенно не существенно.
     
     
  • 6.61, Аноним (-), 15:38, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ды еслиб фантазер, понятно что си эффективнее, но труднее, кроме производительности есть
    > не менее важные требования к скорости разработки и т.п,

    "Я печатаю 500 знаков в минуту! Правда такая чепуха получается!" (почти о питонистах и скорости разработки)

     
  • 4.39, Аноним (-), 00:53, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Будто бы хоть сколь значимый процент сишников его считает, также фигачат страшнейший
    > тупейший неоптимизированный код, лишь бы работало, потом еще неделями с утечками
    > борятся, все плюсы прохезали)

    Хреновый программист - хреново пишет на любом языке.

     
     
  • 5.43, Аноним (-), 01:07, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    совершенно верно, но на языке который позволяет допустить меньше ошибок, и написать быстрее, конечный результат зачастую лучше, вопрос в критериях оценки, в любом случае это не говорит о безоговорочном преимуществе сей или JS, весь дьявол в конкретных деталях конкретной обстановки)
     
     
  • 6.62, Аноним (-), 15:41, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > совершенно верно, но на языке который позволяет допустить меньше ошибок, и написать
    > быстрее, конечный результат зачастую лучше,

    А зачастую хуже, потому что для работы нанимается первый попавшийся имбецил. Который как-то по минимуму программить вроде бы умеет. А то что он почти не соображает и квалификация у него как у дворника - заказчику не очень заметно. Ну, по крайней мере, вот так сразу.

    А питонисты вообще отдельная песня. Воплей о крутизне ЯП хоть отбавляй. А теперь попробуйте найти на нем хоть 1 продукт для веба, чтобы он был не страшный на вид, не тормозной как пипец и функционально не хуже остальных. И как, много продуктов нашлось? :)

     
     
  • 7.99, Аноним (-), 09:05, 11/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> совершенно верно, но на языке который позволяет допустить меньше ошибок, и написать
    >> быстрее, конечный результат зачастую лучше,
    > А зачастую хуже, потому что для работы нанимается первый попавшийся имбецил. Который
    > как-то по минимуму программить вроде бы умеет. А то что он
    > почти не соображает и квалификация у него как у дворника -
    > заказчику не очень заметно. Ну, по крайней мере, вот так сразу.

    Эка вы по потерингу прошлись.. Имбицил который сказал что писать портируемый код не нужно - и достаточно что бы под linux работало. Хотя наверно это стоит расшифровать как - достаточно что бы под RedHat работало - а все остальные не волнуют.

     
  • 2.11, rain87 (?), 18:22, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    раньше я бы плюсанул. но мне довелось как то столкнутся с одной плёвой задачкой - надо было один пхп скрипт с простейшим функционалом (буквально - пришёл клиент - скрипт сделал хттп запрос куда надо - отдал клиенту) реализовать в виде отдельного демона, поскольку клиентов было порядка 3кк в сутки, и это нагружало сервак

    сначала я написал на перле, однако, поскольку на перле я писать толком не умею, получилась кака с загрузкой проца порядка 70%. потом написал на си - загрузка проца стала 7%, памяти порядка 4 метров, красота. однако времени я на это потратил с половину рабочего дня, с учётом того что на серваке стояла фряха, а я писал под линуксом, и просто так оно компилиться не захотелось

    потом я рассказал об этой задаче одному знакомому, он почесал репу - и через 10 минут выдал мне 20 строк на яваскрипте. запустив на серваке, я получил загрузку проца 7% и 100 мбайт памяти. в итоге - яваскриптовый скрипт и работает в продакшне, поскольку при наличии 20гбайт памяти как то неприницпиально, 100 или 4 мб потребляет скрипт. а сишная прога, как выяснилось, падает через какое то время - по какой причине, я уже не стал разбираться, ибо смысла не было

    мораль - для каждой задачи стОит использовать подходящие инструменты. node-js пишут очень классные спецы, он хорошо оптимизирован под каждую платформу. идеально вылизанный код на си будет работать быстрее (на какие то проценты) и будет потреблять значительно меньше памяти, однако затраты на разработку банально несопоставимы. и не стоит плеваться, едва увидив слово яваскрипт (как я когда то). такие дела

     
     
  • 3.16, Аноним (-), 19:06, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +11 +/
    итого из вашего поста понятно, что вы не умеете писать ни на си, ни на перле.
    причем тут джаваскрипт не понятно.
     
     
  • 4.21, Аноним (-), 20:36, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    а из вашего поста любому профи понятно что вы просто выеживаетесь)
     
     
  • 5.36, Аноним (-), 00:49, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а из вашего поста любому профи понятно что вы просто выеживаетесь)

    Не надо сводить объективные моменты к субъективным.
    Если человеку, не разбирающемуся в программировании, поручают написание программы - результат может быть _абсолютно_ любой.

     
     
  • 6.45, Аноним (-), 01:34, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    врядли чел это написавший совсем уж не разбирается, возможно он не спец в сях как и многие другие, или не спец в веб или еще как, но тему затронул правильную, то что си в принципе может быть быстрее совсем не значит что он лучше, т.к. есть куча др. моментов
     
  • 4.50, upyx (ok), 07:05, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А JavaScript тут при том, что и на нём писать человек не умеет. Но он решил задачу три раза (на Perl, C и JavaScropt) до получения удовлетворительного результата. И результат показал, что в его случае JavaScript был оптимальным выбором. А вы уже думайте сами...
     
     
  • 5.66, Sem (??), 16:33, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вообще-то на яваскрипте писал не он. Так, что делайте выводы, что оптимальней.
     
  • 5.91, Ytch (?), 00:40, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Но он решил задачу три раза...

    Когда я решаю одну и ту же задачу 3 раза, то наилучшее решение почти всегда третье. И это мало зависит от используемых средств. Надо рассказывать почему так происходит?

     
  • 4.54, rain87 (?), 11:44, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    =) ожидаемый коммент. ну, вам виднее какой я программист. так что спорить не собираюсь
     
     
  • 5.69, Sem (??), 16:43, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > =) ожидаемый коммент. ну, вам виднее какой я программист. так что спорить
    > не собираюсь

    Спорить не надо, назовите язык, который знаете. В вашем комментарии вы назвали три, которых не знаете. Два из них (ваши), не подошли, третье (чужое) подошло. Самый элементарный вывод напрашивается.

     
     
  • 6.76, Аноним (-), 17:21, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да, напрашивается: на JS неквалифицированным лабухам проще писать. Он больше ощибок и раздолбайства прощает и не требует много от программиста. Правда вот кодом от таких "программистов" я бы пользоваться не стал. Скрипткидди он и в африке скрипткидди.
     
  • 3.18, Аноним (-), 19:26, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Мораль тут только одна - вы плохой программист. Потому что падала, потому что писали это дольше 10 минут (да, на C) и потому что написали тормозню сравнимую по скорости с JS дрянью. Последниц абзац вообще нет смысла комментировать - вы ещё и матчасть не знаете.
     
     
  • 4.55, rain87 (?), 11:49, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Мораль тут только одна - вы плохой программист. Потому что падала, потому
    > что писали это дольше 10 минут (да, на C) и потому
    > что написали тормозню сравнимую по скорости с JS дрянью. Последниц абзац
    > вообще нет смысла комментировать - вы ещё и матчасть не знаете.

    just for lulz - напишите это быстрее чем за 10 минут. нет, серьёзно. у меня это банально по размеру кода не влезет в 10 минут - там строк 300 получилось. простое рутинное создание сокетов, селект, цикл с перебором сокетов, парсинг хттп запроса. я не гуру в си, но меня умиляют такие спецы, которые судя по всему на си вообще ничего не писали

     
     
  • 5.72, Sem (??), 17:03, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А не надо изобретать велосипеды. Есть библиотеки, их используйте. Я уверен, что ваш знакомый тоже не писал парсинг запросов на JavaScript.
     
     
  • 6.75, Аноним (-), 17:18, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А не надо изобретать велосипеды. Есть библиотеки, их используйте. Я уверен, что
    > ваш знакомый тоже не писал парсинг запросов на JavaScript.

    Ну так неужели не понятно что обезьянка освоила подключение "либ" в JS (где этого почти нет и каждый городит как умеет свои костыли, включая и nodeJS) а на сях - абизьян ниасилил или не знал что так можно. И пошел героически выписывать все самолично.

    И это преподносится как "типа, сравнение ЯП". Хотя по факту это сравнение скиллов автора в одном ЯП и другом и степени его затупления в одном случае и другом.

     
  • 3.37, Аноним (-), 00:51, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > потом я рассказал об этой задаче одному знакомому, он почесал репу -
    > и через 10 минут выдал мне 20 строк на яваскрипте.

    А если бы этот знакомый оказался не жабаскриптером, а сишником - он за те же 10 минут выдал бы неглючную и маложручую программу на сях.

     
     
  • 4.57, rain87 (?), 11:55, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А если бы этот знакомый оказался не жабаскриптером, а сишником - он
    > за те же 10 минут выдал бы неглючную и маложручую программу
    > на сях.

    он, как и я, с++ник. пишет на Qt. яваскриптом он просто по фану увлёкся

     
     
  • 5.73, Sem (??), 17:06, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> А если бы этот знакомый оказался не жабаскриптером, а сишником - он
    >> за те же 10 минут выдал бы неглючную и маложручую программу
    >> на сях.
    > он, как и я, с++ник. пишет на Qt. яваскриптом он просто по
    > фану увлёкся

    Ну и писали бы на С++. Прямо на Qt можно - http://doc.trolltech.com/solutions/3/qtservice/qtservice-example-server.html
    А есть еще Boost, там еще проще.

     
  • 3.53, Аноним (-), 10:55, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это ожидаемый результат. Во первых, там JIT работает, так что по факту JavaScript не интерпретируется а компилируется в native код, а сборщик мусора, отслеживание типов использует дополнительную память. А скорость приложения, как правило упирается в скорость передачи данных между оперативной памятью и кэшем процессора. Во вторых если действительно нужна оптимизация только ассемблером можно что-то реально оптимизировать C компилятор выедает далеко не оптимальный код.
     
     
  • 4.56, rain87 (?), 11:50, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Это ожидаемый результат. Во первых, там JIT работает, так что по факту
    > JavaScript не интерпретируется а компилируется в native код, а сборщик мусора,
    > отслеживание типов использует дополнительную память. А скорость приложения, как правило
    > упирается в скорость передачи данных между оперативной памятью и кэшем процессора.
    > Во вторых если действительно нужна оптимизация только ассемблером можно что-то реально
    > оптимизировать C компилятор выедает далеко не оптимальный код.

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

     
     
  • 5.82, Аноним (-), 17:40, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > крутого спеца - на яваскрипте уже сделано за вас, девелоперами ноде.
    > глупо не воспользоваться этими наработками

    На сях вообще-то тоже навалом библ для этого есть, поэтому лично бросаться грудью на амбразуру лезут только тупейшие нубы с синдромом NIH, что их жесточайше палит. Но в силу "хорошего" знания матчасти они об этом не подозревают и эпично палятся на форумах :). А потом еще и искренне удивляются: почему же это скрипткиддей считают тупыми неквалифицированными увальнями. Так вот за зашкаливающий уровень ламерства и считают :)

     
  • 3.63, Аноним (-), 15:46, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > мораль - для каждой задачи стОит использовать подходящие инструменты.

    Мораль: руки у вас кривые и на си вы программировать не умеете. Да, скриптокиддям JS лучше подходит, там думать не надо. Вот только когда становится вопрос о оптимизации расходов, 4Мб или 100 - довольно принципиально. Если у вас 20 гигз простаивают без дела - значит кто-то явно переплачивает в разы за оборудование и его содержание. Впрочем для энтерпрайзных гогнокодеров это типично: не они же парк серверов оплачивают. Вот когда его надо оплачивать самому - тут вон и фэйскнига что-то си++ полюбили в виде своего хипхопа.

     
     
  • 4.64, rain87 (?), 16:01, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    да нет, просто 100 мбайт памяти стоят дешевле чем полдня работы программиста =) простая экономика. в отличие от анонимных аналитиков, руководствующих религиозными предпочтениями, в реальных задачах просто используются оптимальные инструменты

    изначально мордокнига была написана на пхп - это позволило быстро её сделать и запустить. с ростом нагрузки - было принято решение оптимизации. вроде всё просто

     
     
  • 5.67, Аноним (-), 16:35, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как бы сильно зависит от Если например эти 100 мегов сдавать в аренду - то за н... большой текст свёрнут, показать
     
  • 2.93, мшефд (?), 16:28, 10/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> высокопроизводительного
    >> написан на языке JavaScript
    >Ага. Следующий.

    V8 использует JIT-компиляцию в машинный код.

     

  • 1.4, inferrna (?), 17:36, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В-принципе, его можно запустить и в браузере, таким нехитрым образом можно даже построить аналог тора на хомяках.
     
     
  • 2.9, Аноним (-), 18:04, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > В-принципе, его можно запустить и в браузере, таким нехитрым образом можно даже
    > построить аналог тора на хомяках.

    nodejs просто так в браузере не запустишь.

     
     
  • 3.12, anonymous (??), 18:22, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >nodejs просто так в браузере не запустишь.

    нельзя просто так взять и запустить node.js в браузере

     
  • 2.65, Аноним (-), 16:31, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > В-принципе, его можно запустить и в браузере,

    Вот только у браузера нет стандартных методов открыть обычный TCP сокет. И это к лучшему. Потому что первым делом хаксоры бы собрали на основе XSS, JS injection и прочая эпичный ботнет для отсылки спама.

    Кстати, уже был масс-бомбер IRC на основе браузера и XSS - ну вот как-то так: https://encyclopediadramatica.se/Firefox_XPS_IRC_Attack

    Судя по описанию - породило массу лулзов, начиная от просто спама каналов до грамотных подстав IRC операторов, когда хак подсовывался в бложики операторов после чего операторы начинали гасить друг друга за спам со своих же адресов :)

     

  • 1.13, цп4у5 (?), 18:27, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда Hamachi откроют?
     
  • 1.15, Xasd (ok), 19:01, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    интересно.. почему такое странное название
     
     
  • 2.19, NavDotRu (?), 20:12, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Думаю, что подразумевалось что-то вроде HIgh-performance aPACHE.
     
  • 2.34, filosofem (ok), 00:14, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    hipster apache =)
     
     
  • 3.40, Аноним (-), 00:54, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > hipster apache =)

    Тогда уж надо было iPache.

     

  • 1.17, kosha (?), 19:18, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Маркетологам стартапа зачот, засветились! Торговая марка в раскрутке!
     
  • 1.29, Аноним (-), 22:23, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Одмины-хиппи и одмины-хипхоперы жмурятся от удовольствия.
     
  • 1.32, Анонимъ (?), 22:51, 08/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Дочитал до слов "написан на джаваскрипт". Остальное сразу стало неинтересно...
     
     
  • 2.33, Аноним (-), 23:18, 08/08/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Значит вам не интересен JS и таким образом вы сами ограничиваете свой кругозор)
     
     
  • 3.38, Аноним (-), 00:52, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Значит вам не интересен JS и таким образом вы сами ограничиваете свой
    > кругозор)

    Логично предположить, что ему неинтересны извраты как таковые (например, использование JS на сервере).

     
     
  • 4.48, Аноним (-), 02:46, 09/08/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    JS это всего лишь язык, синтаксис, за которым могут скрываться любые реализации, посему вопрос о извратах весьма не очевиден.
     

  • 1.52, edwin (ok), 10:00, 09/08/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Полезная штучка, большое спасибо. Особенно заинтересовали WebSocket ... ч
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру