Автор Тема: Web in BB.  (Прочитано 22495 раз)

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Web in BB.
« Ответ #30 : Август 07, 2012, 03:51:43 pm »
Я не говорю об этом как о супердостижении, но это было сделано без всяких усилий, за малое время. Простор для оптимизации внутри абстрагированной реализации большой.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Web in BB.
« Ответ #31 : Август 07, 2012, 03:58:10 pm »
Я не говорю об этом как о супердостижении, но это было сделано без всяких усилий, за малое время. Простор для оптимизации внутри абстрагированной реализации большой.
ok. Я вообще не вижу тут проблемы для обсуждаемого клиента - даже если вдруг у нас ограничение 2.5 Мб/сек, то этого вполне достаточно для оного клиента. Вся база (sql база без сжатия) сообщений сейчас порядка 30 Мб, то есть выкачать ВЕСЬ форум удалось бы за десяток секунд. А поскольку такая операция далеко не каждый день производится, и обычно там ну десяток сообщений прилетит, то проблемы я не вижу вообще.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Web in BB.
« Ответ #32 : Август 07, 2012, 10:12:43 pm »
Предлагаю попробовать решить частную задачу: как форум (например наш) мог бы выглядеть в ББ
Сколько-то годков назад я написал на ББ нечто вроде чата. Мы с братом опробовали его, на этом и заглохло. После смены компьютера я ББ забросил, так что прямо сейчас не помню где исходники. Когда через месяц выйду из отпуска могу поискать.
Вообще, было бы интересно глянуть.
(месяц отпуска... завидую! меня не отпускают на месяц. на две недели то не хотели отпускать).

Вон под WPF на C# настрогать...
А это я не умею и не могу. Да и не где :-) Могу под Cocoa на ObjC настрогать...
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Web in BB.
« Ответ #33 : Август 08, 2012, 06:33:09 am »
В неграфическом приложении, где Вы делаете свой главный цикл, не будет никаких 50 мс. ... Stores вообще никто не заставляет использовать в неграфическом приложении. У меня в серверных вещах практически ничего не используется из Framework.
Поздравляю. Ты тоже послал ББ в сад. Осталось послать туда же и его 32-битный однопоточный рантайм. Жаль что при этом от языка Component Pascal останется лишь декларация...

Кстати, ещё асинхронка в рантайме нужна при установлении TCP соединения (особенно когда удалённый сервер не отвечает). На время установления соединения либо поток блокируется (и поэтому нужно делать это из вспомогательного потока) или же об установлении соединения сообщается посредством callback опять же в другом потоке.

DIzer

  • Гость
Re: Web in BB.
« Ответ #34 : Август 08, 2012, 09:01:23 am »
В неграфическом приложении, где Вы делаете свой главный цикл, не будет никаких 50 мс. ... Stores вообще никто не заставляет использовать в неграфическом приложении. У меня в серверных вещах практически ничего не используется из Framework.
Поздравляю. Ты тоже послал ББ в сад. Осталось послать туда же и его 32-битный однопоточный рантайм. Жаль что при этом от языка Component Pascal останется лишь декларация...

Но почему, остается почти голый компилятор КП и ББ, как нестандартная IDE (почти тоже что и в случае использования "джентльменского" набора от XDS для этой цели).
;) Хотя , конечно, припоминаются в этой связи щенячьи восторги Ильи по поводу "совершенства архитектуры фреймворка ББ" в коровнике ( в основном, потому что усомнившихся в этом гражданин эцилоп банил, а посты их резались).

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Web in BB.
« Ответ #35 : Август 08, 2012, 08:03:56 pm »
Смысл в proof of concept (на базе составного документа фейс для изначально чисто вебного форума). А технического совершенства добиваться уже потом, возможно посредством других инструментов.
У меня мозги как-то иначе резонируют на подобную задачку. В первую очередь когда я думаю о программе "Форум", то возникает схема из нескольких модулей (смотри вложение), а уж чего там в гуе будет, как-то не интересно.

Во вложении набросок системы типа "Форум" а-ля микро-одноклассники или нано-фэйсбук. На полноценный фэйсбук (сто миллионов соединений) не потянет, а на 100-200 тысяч одновременных соединений -- запросто.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Web in BB.
« Ответ #36 : Август 08, 2012, 09:07:15 pm »
Смысл в proof of concept (на базе составного документа фейс для изначально чисто вебного форума). А технического совершенства добиваться уже потом, возможно посредством других инструментов.
У меня мозги как-то иначе резонируют на подобную задачку. В первую очередь когда я думаю о программе "Форум", то возникает схема из нескольких модулей (смотри вложение), а уж чего там в гуе будет, как-то не интересно.
Дык профдеформация же :-) Глянь первое сообщение топика, там задача была поставлена полностью: http://oberspace.dyndns.org/index.php/topic,292.msg6969.html#msg6969

Во вложении набросок системы типа "Форум" а-ля микро-одноклассники или нано-фэйсбук. На полноценный фэйсбук (сто миллионов соединений) не потянет, а на 100-200 тысяч одновременных соединений -- запросто.
Ну, если уж про схему говорить, то я не вижу смысла именно что для форума использовать реляционную базу данных (тем более если планируются большие нагрузки). Оно ж нормально не масштабируется раз, и работает весьма медленно (относительно современных NoSql и древних dbm) два. Ну и наконец вся моща реляционки с sql-запросами тут просто не нужна. Собственно всякие вконтактофейспалмы и используют NoSql.

И еще по схеме - на схеме указаня странные ограничения по 64К соединений у каждого балансера (в случае http, это будет, очевидно, какой-нибудь nginx), так вот, при таком сценарии использования нет ограничения в 64К соединений. Ограничение будет по файловым дескрипторам (то есть порядка 300k), Скажем xmpp-сервера спокойно на одной машине держат порядка 80-100к соединений без балансеров вообще. Подробней можно посмотреть тут: http://stackoverflow.com/questions/2332741/what-is-the-theoretical-maximum-number-of-open-tcp-connections-that-a-modern-lin

Ах, да, еще нюанс - http не требует постоянного поддержания соединения (собственно keep-alive это просто оптимизация), в обычном, не оптимизированном сценарии, tcp соединение рвется после каждого ответа сервера.

И да, думаю у меня не будет проблем на коленке без хитрой схемы наклепать сервер форума который мог бы на слабеньком vps выдержать какой-нибудь "хабраэффект".
« Последнее редактирование: Август 08, 2012, 09:08:47 pm от valexey »
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Web in BB.
« Ответ #37 : Август 10, 2012, 09:58:37 am »
Но почему, остается почти голый компилятор КП и ББ, как нестандартная IDE (почти тоже что и в случае использования "джентльменского" набора от XDS для этой цели).
;) Хотя , конечно, припоминаются в этой связи щенячьи восторги Ильи по поводу "совершенства архитектуры фреймворка ББ" в коровнике ( в основном, потому что усомнившихся в этом гражданин эцилоп банил, а посты их резались).
Фреймворк ББ - для настольных приложений. И для этапа разработки.
(Если "почти то же", то попробуйте чем-нибудь расширить тот же закрытый XDS, или вон Visual Studio. Напишите какой-нибудь элементарный плагинчик, шоб прочувствовать. Когда-то в 2005-м, когда только мы начинали использовать ББ, была возможность сравнить с написанием плагина для C++ Builder).

В высоконагруженных приложениях идёт другой режим работы с памятью - и вещи, написанные в расчёте на автоматическую сборку мусора, не катят. Про что здесь много говорят Сергей и Алексей. И многие, решающие подобные задачи, сейчас приходят к этому пониманию.

Идёт закономерный виток спирали развития - "отрицание отрицания", ручное управление, но на новом уровне, в герметичном языке.
Поскольку это даже в самом хорошо спроектированном случае несколько усложняет программирование, то для настольных нужд нет никаких причин отказываться от GC. И там Framework применим. Для тех же CASE-инструментов.

DIzer

  • Гость
Re: Web in BB.
« Ответ #38 : Август 10, 2012, 10:10:15 am »
Но почему, остается почти голый компилятор КП и ББ, как нестандартная IDE (почти тоже что и в случае использования "джентльменского" набора от XDS для этой цели).
;) Хотя , конечно, припоминаются в этой связи щенячьи восторги Ильи по поводу "совершенства архитектуры фреймворка ББ" в коровнике ( в основном, потому что усомнившихся в этом гражданин эцилоп банил, а посты их резались).
Фреймворк ББ - для настольных приложений. И для этапа разработки.
Я это знаю - но тем не менее вы также  в превосходной степени говорили и  о таком использовании ББ (причем никто за язык вас не тянул).

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Web in BB.
« Ответ #39 : Август 10, 2012, 10:23:41 am »
Ну я же разрабатываю приложения того класса на ББ! Он является инструментом, средой, на этапе разработки. Просто большинство абстракций Framework как раз и ориентированы на GUI.
В чём противоречие?
Ну да, я использую в рантайме только КП, модифицированное ядро и свой фреймворк.
Но в чём "вина" ББ?

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Web in BB.
« Ответ #40 : Август 10, 2012, 10:26:57 am »
Фреймворк ББ - для настольных приложений. И для этапа разработки.
(Если "почти то же", то попробуйте чем-нибудь расширить тот же закрытый XDS, или вон Visual Studio. Напишите какой-нибудь элементарный плагинчик, шоб прочувствовать. Когда-то в 2005-м, когда только мы начинали использовать ББ, была возможность сравнить с написанием плагина для C++ Builder).

В высоконагруженных приложениях идёт другой режим работы с памятью - и вещи, написанные в расчёте на автоматическую сборку мусора, не катят. Про что здесь много говорят Сергей и Алексей. И многие, решающие подобные задачи, сейчас приходят к этому пониманию.
Не упоминай C++ Builder в суе! Его система плагинов - это же ужас-ужас. Плавали, знаем :-)

Да, и не следует смешивать понятия "не высоко нагруженное приложение" и "десктоп приложение". Многие десктоп приложения являются высоконагруженными (те же самые игры, обработка видео в любом виде (в том числе клиенты для видеозвонков), различные CAD'ы и не очень (3D studio max та же), ansys опять таки). Таже, не следует забывать о мобильных приложения - там тоже приходится бороться со сборщиком мусора (если он на данной платформе есть) - памяти мало (а свопа нет вообще), а главное - мало батарейки. Про микроконтроллеры я вообще молчу..

Таким образом выходит что GC без оглядок применим только на узком множестве задач, это те задачи, когда у нас доступных ресурсов в десятки раз больше чем требует задача сама по себе (причем ресурсы это не только память и процессор, но и энергия и время). И, безусловно, ББ как IDE на современных машинах как раз попадает в этот класс задач.
« Последнее редактирование: Август 10, 2012, 10:28:59 am от valexey »
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Web in BB.
« Ответ #41 : Август 10, 2012, 10:30:48 am »
Тот же CAD, в общем-то, тоже. Никто не мешает там помусорить-помусорить, потом за полсекунды или даже секунду собрать...

DIzer

  • Гость
Re: Web in BB.
« Ответ #42 : Август 10, 2012, 10:35:59 am »

Но в чём "вина" ББ?
Все дело в Вас, Илья и ситуации  которая сложилась в коровнике (при попустительстве Инфо21) - когда наказывалась даже попытка разобраться с областью использования ББ. Яркий пример лажа с жаберлоггером акаШума - создание работающего но нах. ни кому не нужного приложения (вследствие ограничения технологии).

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Web in BB.
« Ответ #43 : Август 10, 2012, 10:49:21 am »
Тот же CAD, в общем-то, тоже. Никто не мешает там помусорить-помусорить, потом за полсекунды или даже секунду собрать...
Там объемы данных большие, такие же как на серверах по сути. Поэтому там это будет не секунда далеко. + если у нас сборщик мусора не компактифицирующий,то очень быстро напоремся на фрагментацию данных - память из за нее просто закончится.

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

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Web in BB.
« Ответ #44 : Август 10, 2012, 10:52:41 am »
В высоконагруженных приложениях идёт другой режим работы с памятью - и вещи, написанные в расчёте на автоматическую сборку мусора, не катят. Про что здесь много говорят Сергей и Алексей. И многие, решающие подобные задачи, сейчас приходят к этому пониманию.

Идёт закономерный виток спирали развития - "отрицание отрицания", ручное управление, но на новом уровне, в герметичном языке.
Эрланг расчитан на создание высоконагруженного серверного ПО, и там сборщик мусора вполне справляется с работой.
Почему же там это катит, а в других языках -- нет?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…