powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему в .Net такие медленные TCP и HTTP?
59 сообщений из 59, показаны все 3 страниц
Почему в .Net такие медленные TCP и HTTP?
    #38714793
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искал давеча информацию о том, как правильные пацаны запиливают клиент-серверное взаимодействие в .Net через TCP. На всех ресурсах где были сравнения с другими языками с конкретными цифрами, выводы были простые: C++ быстрее всех, Java чуть-чуть медленнее, .Net совсем плох. Разумеется, это относится к масштабируемым решениям на неблокирующих или асинхронных сокетах, на банальном блокирующем IO все одинаково - очень сложно запороть банальный вызов к API файловой системы.

А сегодня я наткнулся на вот это: http://www.techempower.com/benchmarks/#section=data-r9
Ребята заморочились и написали огромную кучу бенчмарков для всевозможных серверов. И картину мы здесь видим точно такую же - .Net вообще не вывозит.

У меня вопрос: что не так с .Net? Почему никто не может написать на нем нормальный высокопроизводительный сервер? Кривые руки разработчиков ASP.NET? Кривая платформа? Или просто напросто никто не пишет высокопроихводительный софт на .Net (читай - это никому не нужно)?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38714798
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
платформа сама по себе не шустрая :)
то же касается и java.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38714876
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv,

cdtyjvC++ быстрее всех, Java чуть-чуть медленнее

Высокая же производительность Java это такой же миф, как чебурашка верхом на единороге, катающий по радуге. Java тащится ровно там же, где и .NET, ±1-2% ничего не меняют.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38714882
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvИли просто напросто никто не пишет высокопроихводительный софт на .Net (читай - это никому не нужно)?

Кстати, пишет. При чём на уровне по скорости близком к CPP. Правда это сложновато, так как местами приходится писать unsafe код, работать с указателями, переписывать некоторые нативные классы и методы, нарушать принципы кодирования на C#, и копипастить вместо всяких там абстракций...

Что касается Old School ASP.NET, то да он медленный. Но это не касается vNext, который на подходе (по клятвенным заверениям разработчиков).
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38714986
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВысокая же производительность Java это такой же миф, как чебурашка верхом на единороге, катающий по радуге. Java тащится ровно там же, где и .NET, ±1-2% ничего не меняют.Вы ссылку то открывали? Java чуть-чуть медленнее плюсов. А .Net в разы медленнее и того, и другого. Это подтверждено бенчмарками с открытым исходным кодом, которые отревьюили на предмет валидности сотни разработчиков.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38714987
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TooHotплатформа сама по себе не шустрая :)
то же касается и java.Увы, Java значительно шустрее .Net.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715035
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvВы ссылку то открывали? Java чуть-чуть медленнее плюсов. А .Net в разы медленнее и того, и другого. Это подтверждено бенчмарками с открытым исходным кодом, которые отревьюили на предмет валидности сотни разработчиков.

А углубиться в тему не пробовал?

советую почитать

https://github.com/TechEmpower/FrameworkBenchmarks/issues/362

А то, что на бенчах там форменное фуфло какое-то.
Поверь, я и С++ могу заставить ковылять медленнее Visual Basic.

Многие новички наивно и по-детски полагают, что перфоманс в первую очередь зависит от выбранного языка или платформы.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715053
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt ,
Вы дали ссылку, где парню не понравились результаты из прогона №6. А я вам дал ссылку на прогон №9. Какие вопросы?
Конкретно этот бенчмарк сделан таким образом, что только от платформы все и зависит. И он показывает, что .Net как платформа для нагруженных клиент-серверных приложений, мягко говоря, не ахти. Поэтому вы можете написать супер-крутую аппликацию, но голимая платформа не даст вам прыгнуть выше головы.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715092
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvВы дали ссылку, где парню не понравились результаты из прогона №6. А я вам дал ссылку на прогон №9. Какие вопросы?

Похоже у тебя проблемы с английским. Почитать переписку не судьба? Что тестировалось, как тестировалось, и почему такие результаты. Дело отнюдь не в ASP.NET.


cdtyjvИ он показывает, что .Net как платформа для нагруженных клиент-серверных приложений, мягко говоря, не ахти.

Расскажи эту сказочку для малышей команде StackOverflow.com , вот они поржут.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715093
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv hVostt ,
Вы дали ссылку, где парню не понравились результаты из прогона №6. А я вам дал ссылку на прогон №9. Какие вопросы?
Конкретно этот бенчмарк сделан таким образом, что только от платформы все и зависит. И он показывает, что .Net как платформа для нагруженных клиент-серверных приложений, мягко говоря, не ахти. Поэтому вы можете написать супер-крутую аппликацию, но голимая платформа не даст вам прыгнуть выше головы.По указанной Вами ссылке написЯно "JSON serialization"...
Вас не сильно затруднит вменяемо объяснить, какое отношение к этому имеют TCP и HTTP , котрые Вы использовали для темы.

По приведенной Вами ссылке "особо порадовали" надписи "Did not complete" для подавляющего количества тестов (практически всех) для платформы .NET... "Терзают смутные сомнения" (с), что т.н. тестировщики не особо владеют этой платформой, чтобы для нее провести достоверные тесты и сравнить получненные результаты.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715107
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv,

Когда создатели собирались делать StackOverflow, они хотели делать его на RoR. Но в тот момент вышел ASP.NET MVC, и они выбрали его.

Нагрузка за день и среднее время отклика (12 ноября 2013)

Страницы вопросов с ответами — 28 миллисекунд (29.7 млн. запросов)

Профили пользователей — 39 миллисекунд (1.7 мил. запросов)

Список вопросов — 78 миллисекунд (1.1 млн. запросов)

Домашняя страница — 65 миллисекунд (1 млн. запросов)

Пойди, расскажи этим ребятам, какой ASP.NET медленный.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715160
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, да не ведись ты на этот дешевый вброс
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715173
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvcdtyjv hVostt ,
Вы дали ссылку, где парню не понравились результаты из прогона №6. А я вам дал ссылку на прогон №9. Какие вопросы?
Конкретно этот бенчмарк сделан таким образом, что только от платформы все и зависит. И он показывает, что .Net как платформа для нагруженных клиент-серверных приложений, мягко говоря, не ахти. Поэтому вы можете написать супер-крутую аппликацию, но голимая платформа не даст вам прыгнуть выше головы.По указанной Вами ссылке написЯно "JSON serialization"...
Вас не сильно затруднит вменяемо объяснить, какое отношение к этому имеют TCP и HTTP , котрые Вы использовали для темы.Ок, объясняю:
1) HTTP работает поверх TCP.
2) Полезной нагрузкой HTTP конкретно в этом бенчмарке является JSON объект.
3) Это лишь один из бенчмарков. Полистайте вкладки на этой же странице, там результаты и для других бенчмарков. Но .Net болтается внизу везде.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715183
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttcdtyjv,

Когда создатели собирались делать StackOverflow, они хотели делать его на RoR. Но в тот момент вышел ASP.NET MVC, и они выбрали его.

Нагрузка за день и среднее время отклика (12 ноября 2013)

Страницы вопросов с ответами — 28 миллисекунд (29.7 млн. запросов)

Профили пользователей — 39 миллисекунд (1.7 мил. запросов)

Список вопросов — 78 миллисекунд (1.1 млн. запросов)

Домашняя страница — 65 миллисекунд (1 млн. запросов)

Пойди, расскажи этим ребятам, какой ASP.NET медленный.


29700000 запросов в день.
1237500 запросов в час.
20625 в минуту.
345 в секунду.

Это, по-вашему, высокая нагрузка? Это может быть высокая нагрузка на СУБД, но не на нормальный веб-сервер.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715233
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv 345 в секунду.

Это, по-вашему, высокая нагрузка?

Вообще-то, да, высокая.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715246
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvЭто, по-вашему, высокая нагрузка?

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

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

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

Вообщем ты наивен как.. (как?) дитя. К чему эти вбросы?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715248
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv29700000 запросов в день.
1237500 запросов в час.
20625 в минуту.
345 в секунду.

У тебя ещё и с математикой проблемы большие. Боюсь спросить, ты школу хоть заканчивал? Хотя бы 5-ый класс? Очень сомневаюсь.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715250
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cdtyjvTooHotплатформа сама по себе не шустрая :)
то же касается и java.Увы, Java значительно шустрее .Net.

Где вы узрели в моем сообщении о том, что шустрее?
Идите в свою пещеру под названием java, вы найдете там много соратников-троллей, каким вы и являетесь. И высерайте там всем скопом свои java-шлакоблоки.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715251
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVostt, да не ведись ты на этот дешевый вброс

Так это даже не вброс. Это больше похоже на какие-то попытки оправдаться в собственной некомпетентности за счёт чьих-то чужих бенчмарков.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715256
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бенчмарки - дело маркетологов, оплачивающих "недотесты", чтобы впарить свое говно.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715360
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvTooHotплатформа сама по себе не шустрая :)
то же касается и java.Увы, Java значительно шустрее .Net.
WinAPI видимо разные
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715379
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot cdtyjv]sphinx_mv2) Полезной нагрузкой HTTP конкретно в этом бенчмарке является JSON объект."Конкретно в этом бенчмарке" сравнивается производительность различных библиотек для сериализации JSON.
Сугубо к сведению... Ни HTTP, ни тем более TCP ни к .NETу вообще, ни к сериализации в частности вообще не при делах.
cdtyjv3) Это лишь один из бенчмарков. Полистайте вкладки на этой же странице, там результаты и для других бенчмарков. Но .Net болтается внизу везде. Нечего там "листать"!
Потому что аргументировать "медлительность" .NET результатами тестов с пометкой "did not complete" - это диагноз.
Независимо от того, в какую строку таблицы попал этот "результат".
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715389
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TooHotБенчмарки - дело маркетологов, оплачивающих "недотесты", чтобы впарить свое говно.
Абсолютно верно.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715392
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv"Конкретно в этом бенчмарке" сравнивается производительность различных библиотек для сериализации JSON.
Сугубо к сведению... Ни HTTP, ни тем более TCP ни к .NETу вообще, ни к сериализации в частности вообще не при делах.Вы читать умеете вообще?
авторIn this test, each response is a JSON serialization of a freshly-instantiated object that maps the key message to the value Hello, World!
Окей, не нравится вам этот бенчмарк, откройте другой: http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=plaintext
Обычная отсылка plain text в респонсе. .Net там в не меньшей заднице.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715408
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvОбычная отсылка plain text в респонсе. .Net там в не меньшей заднице.

В заднице там не .NET, а говнокод, который тестируется. И учи математику малыш, ты обделался в предыдущих «расчётах».

...

Кто-нить мне объяснит, это он тупо дурака включает, или реально ....? Уже который топик маниакальными тупорылыми набросами. Ладно там хоть что-то было похожее на свои мысли, теперь же попёрли какие-то упоротые бенчмарки каких-то долболоидов. Я просто в ветку Java никогда не ходил и тамошний контингент не знаю. Но похоже, что всё печально...
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715411
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКто-нить мне объяснит, это он тупо дурака включает, или реально ....?
реально.
готовить не умеет - вот и мечет икру кабачковую
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715434
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvВы читать умеете вообще
авторIn this test, each response is a JSON serialization of a freshly-instantiated object that maps the key message to the value Hello, World!"Положительное" отношение к сборке мусора в серверных приложениях еще никого до добра не доводило...
cdtyjvОкей, не нравится вам этот бенчмарк, откройте другой: http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=plaintext
Обычная отсылка plain text в респонсе. .Net там в не меньшей заднице."В не меньшей заднице" там только тестеры-говнокодеры. Облажаться даже с plain-text - это надо ОЧЕНЬ постараться!
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715438
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv"Положительное" отношение к сборке мусора в серверных приложениях еще никого до добра не доводило...Причем здесь сборка мусора?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715443
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, собственно, у меня вопрос очень простой - почему на .Net не существует высокопроизводительных клиент-серверных решений? Потому что платформа кривая, или же потому что спроса на них нет? Вот, например, берем Java. У нее есть медленный Tomcat для непритязательных пользователей. Есть куча разных серверов приложений для корпоративного сектора, то же не особо поворотливых. А есть скоростные решения - Netty, gemini, undertow - для создания очень нагруженных, масштабируемых решений. И вот есть .Net, в котором есть тормозной ASP.NET, и никаких альтернатив.
Нет, я искал скоростные решения. SuperSocket есть там какой-то, какая-то другая китайская поделка, еще парочку наколенных фреймоврков. Но все они любительские, то есть какой-то энтузиаст попилил, и забросил. Инфы по их использованию в реальных проектах нет.
StackOverflow, обрабатывающий 300 запросов в секунду силами нескольких серверов, "нагруженным" назвать язык не поворачивается. Я на свой домашний компьютер поставлю и затюнингую Netty, он вам в 10 раз больше выдавать будет. То есть для веб-сервера это вообще не нагрузка. Я вам сейчас напишу на 200 строк кода сервер, который каждого клиента обрабатывает в отдельном потоке с блокирующим IO, он и то справится с 300 запросами в секунду. Это мизер.

Выходит, что спроса нет?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715458
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvДа, собственно, у меня вопрос очень простой - почему на .Net не существует высокопроизводительных клиент-серверных решений?

Tcp-сервер с SSL, 200-300 тысяч пакетов в секунду (ручной разбор байтовых массивов) на машине core i7 8 ядер 8 гигов оперативки - это высокопроизводительное решение?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715463
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Tcp-сервер с SSL, 200-300 тысяч пакетов в секунду (ручной разбор байтовых массивов) на машине core i7 8 ядер 8 гигов оперативки - это высокопроизводительное решение?Что такое "пакет"? TCP-пакет? Или изолированное сообщение? Дайте больше информации.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715473
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvЧто такое "пакет"? TCP-пакет? Или изолированное сообщение? Дайте больше информации.

Пакет - примерно 100 байт (округляем, есть меньше, есть больше - но порядок именно такой)
Пакет не одинаковый, поэтому приходилось не просто десериализовывать, а копить внутренние буферы данных, так как в зависимости от флагов получались разные типы сообщений

Без анализа - десериализация только в один заранее известный тип - 300-400 тысяч пакетов в секунду.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715482
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79 ,
Понял. Да, это уже нормальный порядок цифр. Абсолютная сетевая скорость, конечно, не ахти - порядка 20Mb/s, но на мелких сообщениях сложно нормально грузить провод.
А как они у вас обрабатываются? То есть 200К - это сколько принято сообщений, или же это циклы request-response? И сколько соединений? Это один клиент общающийся с одним сервером, или же множество клиентов?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715485
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv Arm79 ,
Понял. Да, это уже нормальный порядок цифр. Абсолютная сетевая скорость, конечно, не ахти - порядка 20Mb/s, но на мелких сообщениях сложно нормально грузить провод.
А как они у вас обрабатываются? То есть 200К - это сколько принято сообщений, или же это циклы request-response? И сколько соединений? Это один клиент общающийся с одним сервером, или же множество клиентов?
Mb/s - это мегабайт в секунду или мегабит? ваша цифра - это мегабайт в сек

Тестил на своей машине, сервер + ~600 клиентов. Больше запустить не смог, памяти перестало хватать, начался дикий своп и клиенты вылетали с ошибками.

Так что речь идет об обмене данными на одной машине, считайте через localhost. И не забывайте, каждый клиент - это SSL канал, то есть время тратилось на симметричное шифрование.

Принцип простой - открывается сеанс и сервер и клиент могут друг другу присылать информацию. В основном весь трафик шел с клиентов. Если бы был request-response, много бы потратилось времени на соединение и обмен ключами.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715487
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79 ,
Я под request-response имею ввиду, что клиент отсылает серверу сообщение, а потом ждет от него ответа. Или же это был односторонний обмен: то есть одна сторона шлет другой просто поток сообщений, не дожидаясь ответов.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715488
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvне дожидаясь ответов
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715491
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cdtyjvДа, собственно, у меня вопрос очень простой - почему на .Net не существует высокопроизводительных клиент-серверных решений?

У меня в корпоративной среде активно работают около 1000 пользователей в браузере. Все идет через прокси сервер c поддержкой SSL на базе FiddlerCore, который написан на .Net
И при этом прокси на лету расшифровывает HTTPS трафик, так как есть необходимость обрабатывать, так же на лету, передаваемый и получаемый контент.
И все пучком, никто не жалуется и сервер не загибается. Чем не высокопроизводительно?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715497
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvsphinx_mv"Положительное" отношение к сборке мусора в серверных приложениях еще никого до добра не доводило...Причем здесь сборка мусора?Т.е., Вы не в курсе, какое отношение имеет и как влияет на производительность сборщик мусора при массовом создании и удалении объектов?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715503
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvПричем здесь сборка мусора?Т.е., Вы не в курсе, какое отношение имеет и как влияет на производительность сборщик мусора при массовом создании и удалении объектов?[/quot]Ну расскажите. У меня в секунду создаются миллионы объектов включая всякие коллекции и массивы, и в профайлере GC болтается где-то на уровне 1-2% CPU. Что я делаю не так?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715506
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvУ меня в секунду создаются миллионы объектов включая всякие коллекции и массивы, и в профайлере GC болтается где-то на уровне 1-2% CPU. Что я делаю не так?
возможно, у вас на сервере достаточно оперативки, и сборщик мусора не включается?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715509
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TooHotcdtyjvДа, собственно, у меня вопрос очень простой - почему на .Net не существует высокопроизводительных клиент-серверных решений?

У меня в корпоративной среде активно работают около 1000 пользователей в браузере. Все идет через прокси сервер c поддержкой SSL на базе FiddlerCore, который написан на .Net
И при этом прокси на лету расшифровывает HTTPS трафик, так как есть необходимость обрабатывать, так же на лету, передаваемый и получаемый контент.
И все пучком, никто не жалуется и сервер не загибается. Чем не высокопроизводительно?1000 пользователей в браузере это дай бог несколько десятков запросов в секунду. Под высокую нагрузку не тянет.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715517
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79cdtyjvне дожидаясь ответовЯ понял. 200-300К в принципе нормальные цифры. Другое дело, что loopback - это всегда синтетика. Поведение программы на реальном сетевом интерфейсе может значительно отличаться от того, что вы видите на loopback. Вот мы посчитали, что у вас там 20Mb/s = 160MBit/s. На гигабитной локалке вы сможете выжать еще больше. Если будете правильно паковать сообщения в TCP пакеты, то значительно больше. У меня из последних тестов было примерно ~100К честных request-response циклов, с размером сообщения порядка 500 байт каждое. Если это чисто request, который не ждет ответа, то цифры уже порядка 500-600К в секунду.
Вопрос в том, что в .Net нет готовых решений, которые можно просто взять, и они будут вот так работать с нормальной производительностью и масштабируемостью. Надо все делать руками. А в Java ты просто берешь какой-нибудь Netty, и ни о чем не думаешь.
Отсюда и вопрос - почему так? Где схожие коробочные решения на .Net?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715520
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79cdtyjvУ меня в секунду создаются миллионы объектов включая всякие коллекции и массивы, и в профайлере GC болтается где-то на уровне 1-2% CPU. Что я делаю не так?
возможно, у вас на сервере достаточно оперативки, и сборщик мусора не включается?Потребление памяти этого приложения - не более 200Mb в пике. GC, разумеется, включен, иначе я бы задохнулся через секунду. На дефолтных настройках конкретно это приложение так же задыхается. Там так или иначе аллоцируется ... нууу где-то 10КК объектов в секунду, и GC отжирает порядка 80%. Но GC надо использовать правильно. В Java настройка GC это целая эпопея, там порядка сотни параметров можно подкручивать. В .Net с этим делом попроще будет - включаешь gcServer , и ни о чем не думаешь, нагрузка сборщика на процессор сразу же приходит в норму.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715521
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvArm79пропущено...
Я понял. 200-300К в принципе нормальные цифры. Другое дело, что loopback - это всегда синтетика. Поведение программы на реальном сетевом интерфейсе может значительно отличаться от того, что вы видите на loopback. Вот мы посчитали, что у вас там 20Mb/s = 160MBit/s. На гигабитной локалке вы сможете выжать еще больше. Если будете правильно паковать сообщения в TCP пакеты, то значительно больше. У меня из последних тестов было примерно ~100К честных request-response циклов, с размером сообщения порядка 500 байт каждое. Если это чисто request, который не ждет ответа, то цифры уже порядка 500-600К в секунду.
Вопрос в том, что в .Net нет готовых решений, которые можно просто взять, и они будут вот так работать с нормальной производительностью и масштабируемостью. Надо все делать руками. А в Java ты просто берешь какой-нибудь Netty, и ни о чем не думаешь.
Отсюда и вопрос - почему так? Где схожие коробочные решения на .Net?

Так мы с вами все-таки пришли к мнению, что и на .Net можно писать высокопроизводительные решения, по скорости ничуть не уступающие Java?

C Netty не работал, но не думаю, что сильно ошибусь, если скажу, что WCF + nettcpbinding + protocolbuffers вместо soap будет не хуже.

ЗЫ Правильно паковать - это как? Я лично не выбирал формат пакетов - описание самописного протокола мне предоставили. Пришлось использовать что есть.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715526
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cdtyjv1000 пользователей в браузере это дай бог несколько десятков запросов в секунду. Под высокую нагрузку не тянет.

Не прикидывайтесь идиотом, а то я впрямь стану так думать. Для прокси сервера это высокая нагрузка, тот же Kerio загибается от такого количества пользователей, даже при его включенном кэше.
1 клик пользователя и у вас могут быть десятки запросов с веб-страницы, при этом как я упомянул, дешифруется HTTPS трафик, плюс ко всему созданы и работают фильтры по URL и контенту, а также организовано каскадирование прокси для необходимых запросов. Если включить логирование в real time, в журнал срет с такой скоростью, что главный поток загибается в обработке очереди сообщений, приходится накапливать данные и сваливать их в лог по таймеру.
А вы говорите "дай бог несколько десятков запросов в секунду" :)
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38715949
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79C Netty не работал, но не думаю, что сильно ошибусь, если скажу, что WCF + nettcpbinding + protocolbuffers вместо soap будет не хуже.

Даже ASP.NET MVC будет быстрее, чем aspx-страницы, используемые в тестах. А если взять WebAPI на Katana, то Netty нервно покурит в сторонке. Просто чел вышел из берлоги.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716027
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvУ меня вопрос: что не так с .Net?
Не так с .NET то, то он создан для решения реальных задач, а не для дебильных микробенчмарков.

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

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

В реальных задачах HTTP-кеширование - основной инструмент для повышения быстродействия сайта.
Вот примеры:
http://habrahabr.ru/post/168869/
http://habrahabr.ru/post/227129/
Если лень читать - взял банальный MvcMusicStore и прикручиванием кеша разогнал его в 5 раз. При этом пришлось в совокупности поправить 15 строк кода. И это я не трогал ни запросы, ни пытался что-либо оптимизировать в коде приложения.

Кстати если буферизацию выключить, то вариант с C++, nodejs и Self-Hosted WebApi дали почти одинаковый результат на локальной машине.

cdtyjvПочему никто не может написать на нем нормальный высокопроизводительный сервер? Кривые руки разработчиков ASP.NET? Кривая платформа? Или просто напросто никто не пишет высокопроихводительный софт на .Net (читай - это никому не нужно)?
А с чего ты взял что никто не пишет или не может? На основании микробенчмарков? У меня был сервер который держал 150 клиентов и стримал данные с датчиков во 80 пактов в секунду. Пакеты были около 1к+оверхед от .net.tcp. При этом он насыщал 100мб сеть, кушая не более 20% одного ядра и 100мб памяти.

Я не стал изобретать всякие велосипеды с кастомной сериализацией и прочей муйней, а просто поправил код, чтобы он отправлял только измененные данные и нагрузка сети упала до 10%.

В практических задачах кешироване рулит в разы сильнее, чем скорость вообще любого компонента в отдельности.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716064
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttДаже ASP.NET MVC будет быстрее, чем aspx-страницы, используемые в тестах. А если взять WebAPI на Katana, то Netty нервно покурит в сторонке. Просто чел вышел из берлоги.Дадада. Ну так пойдите, запилите. Более того, этот бенчмарк уже есть - https://github.com/howarddierking/FrameworkBenchmarks/tree/aspnet-katana/aspnet-katana
Но он не смержин в основной бранч. Видимо, потому что эта ваша katana никому особо не нужна. И ни одной статьи про ее перфоманс нет. Очевидно, что ничего интересного она из себя не представляет.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716067
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasВ практических задачах кешироване рулит в разы сильнее, чем скорость вообще любого компонента в отдельности.

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

ещё необходимо учесть довольно громоздкий цикл жизни обработки запроса в классическом ASP.NET, который с одной стороны бьёт по производительности, с другой позволяет навешивать свою обработку, контроль пост- и пре-процессинг на любом этапе жизненного цикла, что существенно перевешивает вопросы скорости. естественно при грамотной работе с кешем и оптимизациями всё это перестаёт иметь значение. WebAPI же работает на достойном уровне, так почему же они его не тестили? потому что долбодятлы, вот почему.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716077
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gandjustasВ практических задачах кешироване рулит в разы сильнее, чем скорость вообще любого компонента в отдельности.Окей, идите закэшируйте цены акций в торговом роботе. Речь идет не про HTTP, а про TCP в целом. HTTP - лишь обертка сверху. Существует огромная масса приложений, которым надо быстро гонять данные по сети. И здесь .Net почему-то ничего не может предложить из коробки.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716082
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvОчевидно, что ничего интересного она из себя не представляет.

Очевидно, потому что какой-то долбодятел так решил? Очевидно, что ты не осилил, хотя это итак понятно.

Тебе катану, asp.net и .net никто не навязывает. Не нравится не ешь. Не хватает мозгов, чтобы осилить, тем более. Взять, например, Java. У меня был опыт работы, работу я выполнил, понял что на Java вполне можно успешно решать задачи, но мне она не понравилось, так как мне есть с чем сравнивать. Однако я не хожу как мудила по форумам и не ору, что Java говнище, и почему она мне не понравилась. Зачем ты это делаешь до сих пор не пойму.

А по поводу бенчей, я тебе сказал уже что ты не прав. Бенчи вообще не показатель производительности, так как невозможно обеспечить одинаковые условия, учитывая что разные ферймворки по-разному обрабатывают запросы, и кто-то при этом выполняет больше работы, кто-то меньше. На ASP.NET люди делают высоконагруженные проекты, с миллионами активных пользователей и миллионами посетителей в сутки. Вот когда население земли вырастет до сотней триллионов, тогда и поговорим. Вижу ты не любитель обсуждать в контексте реальных задач, не наигрался ещё в детский садик, у кого писька больше.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716085
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvИ здесь .Net почему-то ничего не может предложить из коробки.

Да, есть такие ребята, которые могут подохнуть с голоду при набитом продуктами холодильнике, если на холодильнике будет написано «здесь еды нет». Ты по ходу один из них. Тебе лично никто ничего не предлагает кроме того, чтобы купить мозгов, всё есть из коробки, только ты не способен даже её открыть. О чём дальше разговаривать???
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716096
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TooHot1 клик пользователя и у вас могут быть десятки запросов с веб-страницывот занафига так делать? серверу заняться нечем?
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716178
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyTooHot1 клик пользователя и у вас могут быть десятки запросов с веб-страницывот занафига так делать? серверу заняться нечем?

А это вы лучше спросите у веб быдлокодеров, у которых cache control must revalidate, перегрузка всей страницы вместо элегантного ajax запроса.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716243
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvИ здесь .Net почему-то ничего не может предложить из коробки.
Быстрее чем Winsock2 работает - ничего не получится.

можешь конечно открыть топик - "Винда-говно"
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716346
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
Ну с тем, что Винда как серверная платформа никакая никто и не спорить. Все давно сидят на еполе, а Микрософт только только созрел до RIO.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716347
Фотография Denis.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а пускай свеня напишет свой тестик, а мы имплементируем свой. И сравним результаты. Мне думается интересно получится.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38716367
gandjustas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvИзопропил,
Ну с тем, что Винда как серверная платформа никакая никто и не спорить. Все давно сидят на еполе, а Микрософт только только созрел до RIO.

epoll требует определенной архитектуры, когда управляющий поток делает wait, а потом раскидывает задачи по пулу. Делать wait в нескольких потоках невыгодно. В винде нет необходимости делать wait в одном потоке, завершение само приходит в пул через IOCP. RIO лишь оптимизирует немного это завершение, за счет того, что буфер из драйвера сетевой карты не копиируются, а запись-чтение происходит напрямую в буферы приложения, ну всякие мелочи, типа развязки очереди завершения, которые можно разглядеть только под микроскопом.
...
Рейтинг: 0 / 0
Почему в .Net такие медленные TCP и HTTP?
    #38722265
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvhVosttcdtyjv,

Когда создатели собирались делать StackOverflow, они хотели делать его на RoR. Но в тот момент вышел ASP.NET MVC, и они выбрали его.

Нагрузка за день и среднее время отклика (12 ноября 2013)

Страницы вопросов с ответами — 28 миллисекунд (29.7 млн. запросов)

Профили пользователей — 39 миллисекунд (1.7 мил. запросов)

Список вопросов — 78 миллисекунд (1.1 млн. запросов)

Домашняя страница — 65 миллисекунд (1 млн. запросов)

Пойди, расскажи этим ребятам, какой ASP.NET медленный.


29700000 запросов в день.
1237500 запросов в час.
20625 в минуту.
345 в секунду.

Это, по-вашему, высокая нагрузка? Это может быть высокая нагрузка на СУБД, но не на нормальный веб-сервер.Peak is more like 2600-3000 requests/sec on most weekdays.

StackOverflow Update: 560M Pageviews A Month, 25 Servers, And It's All About Performance
...
Рейтинг: 0 / 0
59 сообщений из 59, показаны все 3 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему в .Net такие медленные TCP и HTTP?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]