LINUX.ORG.RU

Сервер на asio напиши. Там как помимо asio много чего из буста узнаешь. Главное, понять, как оно работает.

mv ★★★★★
()

Хочется странного на boost

Хм, в принципе, да, молодость - не преступление.

Перед тем как начать странно использовать буст, рекомендую к прочтению: «Совершенный код» и еще раз подумать, так ли необходимо тебе «интенсивно использовать буст».

Чего бы написать такого, чтобы поближе познакомиться с boost

Напиши бочку простенькую CMS. А потом оцени вклад буста и потерянное время.

Напиши простенький складской учет. А потом оцени вклад буста и потерянное время.

Напиши простенький RSS-клиент. А потом оцени вклад буста и потерянное время.

Ну или если времени не жалко, то пиши, как выше порекомендовали, asio сервер, и гордись.

PS И, это, компилируй сразу с -О2/3, а то твои мегапроекты будут тормознее, чем без буста или на яве :)

malbolge ★★
()
Последнее исправление: malbolge (всего исправлений: 1)
Ответ на: комментарий от malbolge

Не нужно.

Напиши бочку простенькую CMS. А потом оцени вклад буста и потерянное время.

Не нужно.

Напиши простенький складской учет. А потом оцени вклад буста и потерянное время.

Не нужно.

Напиши простенький RSS-клиент. А потом оцени вклад буста и потерянное время.

Не нужно.

Ну или если времени не жалко, то пиши, как выше порекомендовали, asio сервер, и гордись.

Хоть немного нужно.

PS И, это, компилируй сразу с -О2/3, а то твои мегапроекты будут тормознее, чем без буста или на яве :)

Это какбэ основа, ибо С++ с -O0 будет тормазнее всего, но даже с O0 тормазнее явы будет только реальный говнокод, а вот с -O2 мне жалко яву.

o2n3e
()
Ответ на: Не нужно. от o2n3e

вот с -O2 мне жалко яву.

ты заблуждаешься. jit может локально оптимизировать вызов виртуального метода. О2 в с++ такого не сделает.

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

nanoolinux ★★★★
()
Ответ на: Не нужно. от o2n3e

Эти ваши ненужно - потому что попоболь, или потому что участь С++ программиста - кодирование, но не самостоятельная разработка?

malbolge ★★
()
Ответ на: комментарий от malbolge

рекомендую к прочтению: «Совершенный код»

Присоединяюсь к рекомендации.

trex6 ★★★★★
()
Ответ на: комментарий от nanoolinux

Кикие же вы жабисты смишные.

Основа тормазов жавы не в этом. И вы забываете, что jit - это программа на С/С++.

Ява априори тормазнее С/С++, нет ничего в яве такого, что было бы быстрее С/С++, ибо этого просто не может быть - скорость явы - это jit, а jit - это С/С++ ты как любой жабист поделил на 0. Ява - это такое кастыль, для того, что бы прикалтуха и говноинтерпрайз, который пилят макаки не тормазил. Ничто выше С/С++ не может быть быстрее, ибо любая универсальность покупается за скорость.

ГЦ явы может приблизиться к такому говну как NEW/malloc, но оно не будет никогда быстрее этого говна и это говно будет на порядки(десятичные) тормазнее нормального манагера кучи. Ну и да, С/С++ код не спит из-за манагеры кучи, как в яве.

o2n3e
()
Ответ на: комментарий от frozenix

Разве его в examples нет?

Чего его? Пример использования есть, того, чего автор напишет - нету :)

mv ★★★★★
()
Ответ на: комментарий от malbolge

Потомучто.

Не нужно это потому, что это говно априори. Всякие «складской учет» - удел делфи макаки за еду, не более.

По поводу попаболи - тут фейл. Удел развивающегося человека пилить хороший код, цель которого - хороший код. Удел макаки - это результат. Не помню кому я рассказывал аналогию со скворешниками из реальной жизни: «Есть 2 дядя - дядя Егор и дядя Ваня. И захотели они делать скворешники, ну и понеслась. Дядя Егор пошел читать мануалы про обрабоку древесины, рисовать какие-то ненужные чертежи, подбирать метизы и т.п. Дядя Ваня за это время уже сколотил 50скворешников универсальными гвоздями 5х150, кривые-косые и т.п. Аргументы Дяди Вани были, - „Вот Егор дно - он занимается творчеством, „преждевременной оптимизацией“, „ничего не делает, тратит время на ненужно“ - ваши любимые аргументы“. И вот прошел месяц и они оба сделали по 100скворешников, и Дядя Егор, который был нацелен на качество(саморазвитие) и Дядя Ваня, который был нацелен на результат. В чем же разница?»

Так же, я считаю буст говном, ибо в нём 99% ненужного. Я считаю С++ говном, ибо в нём 60% не нужного, его идеалогия протухла(я объясню почему, если интересно). Такие лементарные тулкиты могут использоваться только для прикладухи, для которой оправдана кроссплатформенность - для чего-то большего они не годны.

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

o2n3e
()
Ответ на: комментарий от nanoolinux

Правда чтоли?

Твой трололо слив мне не интересен, как и твои смайлики.

Ты о5 поделил на 0, твой jit написан на С/С++. Т.е. твой jit по твоей же логике не может быть быстрее явы, которая исполняется jit'ом, ибо jit на С/С++? Кто из нас болен? Логика, не? Jit с GC на яве с GC - войди в рекурсию и слейся с твоим не интересным недотроллингом.

o2n3e
()
Ответ на: комментарий от nanoolinux

jit может локально оптимизировать вызов виртуального метода. О2 в с++ такого не сделает.

It's not a performance problem until you can prove it. (c)

shty ★★★★★
()
Ответ на: комментарий от nanoolinux

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

где можно пруфов в кулёк отсыпать?

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)
Ответ на: комментарий от buddhist

“Saw comment // NEW BOOST CODE, and had a moment of panic before realizing it was vehicle boost, not C++ boost.”

фиксы на любой вкус (по-моему, так смешнее):

“Saw comment '-- NEW BOOST CODE', and had a moment of panic before realizing it was vehicle boost, not C++ boost.”

“Saw comment '/* NEW BOOST CODE */', and had a moment of panic before realizing it was vehicle boost, not C++ boost.”

“Saw comment '(* NEW BOOST CODE *)', and had a moment of panic before realizing it was vehicle boost, not C++ boost.”

“Saw comment '# NEW BOOST CODE', and had a moment of panic before realizing it was vehicle boost, not C++ boost.”

“Saw comment '% NEW BOOST CODE', and had a moment of panic before realizing it was vehicle boost, not C++ boost.”

anonymous
()
Ответ на: Правда чтоли? от o2n3e

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

nanoolinux ★★★★
()
Ответ на: комментарий от shty

http://stackoverflow.com/questions/1719581/how-can-java-inline-over-virtual-f...

http://wasdynacache.blogspot.de/2012/04/ibm-j9-jit-inlining-of-virtual-method...

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

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

http://stackoverflow.com/questions/1719581/how-can-java-inline-over-virtual-f... ...

я верю что JVM умеет так делать :)

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

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

shty ★★★★★
()
Ответ на: комментарий от shty

на порядок

на правах троллинга же. разве не видно, товарищ явно неадекватен.

nanoolinux ★★★★
()
Ответ на: комментарий от malbolge

Напиши бочку простенькую CMS. А потом оцени вклад буста и потерянное время.

Напиши простенький складской учет. А потом оцени вклад буста и потерянное время.

Напиши простенький RSS-клиент. А потом оцени вклад буста и потерянное время.

На кой вся эта бесполезная срань нужна?

Ну или если времени не жалко, то пиши, как выше порекомендовали, asio сервер

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

Reset ★★★★★
()
Ответ на: комментарий от frozenix

Например, в examples куча http серверов, но нет ни одного с поддержкой HTTP 1.1 и стриминга. Как раз хорошая практика довести http-сервер из примера до нормального уровня, чтобы можно было в продакшен ставить.

Reset ★★★★★
()
Последнее исправление: Reset (всего исправлений: 1)
Ответ на: комментарий от nanoolinux

уже давно доказано - йава с житом на порядок быстрее любого с++

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

ЗЫ вызов стотысячмиллионов виртуальных ф-й это как бы не задача.

AIv ★★★★★
()
Последнее исправление: AIv (всего исправлений: 1)
Ответ на: комментарий от nanoolinux

Лорчую вот этого. Только сначала возьми отпуск и запаси дома продуктов.

Писал YAML-подобный конфиг на spirit-кун

anonymous
()
Ответ на: комментарий от AIv

вызов стотысячмиллионов виртуальных ф-й это как бы не задача.

там весь смех в том, что как только добавляется полезная нагрузка весь проигрыш от виртуальных функций сводится к долям процентов, кроме того то, что JVM умеет оптимизировать вызов виртуальных функций - не означает автоматически, что оно работает быстрее «неоптимального» кода С++

ну и да, на числобобрилках таки Java сливает C++ ^:)

shty ★★★★★
()
Последнее исправление: shty (всего исправлений: 1)
Ответ на: комментарий от shty

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

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

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

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

напиши интерпретатор хаскеля на спирите, чо.

Вот это достойная задачка. Поковыряюсь. Пасибо) P.S. Уже с boost.asio знаком.

nerdogeek
() автор топика
Ответ на: комментарий от nanoolinux

ты болен! уже давно доказано

Хочу пожелать всем любителям java вовремя отработавшего garbage collection и прочего добра)

nerdogeek
() автор топика
Ответ на: комментарий от nanoolinux

Окай.

Ну дак ты же мне ответил? Зачем ты мне ответил? Любое упомянание быстроты явы - это изначально сливотред и нужен только для того, чтобы поржать. Не хочешь разговора о яве - не отвечай, всё логично.

o2n3e
()
Ответ на: комментарий от nanoolinux

А ты подумай.

Понимаешь, ява-вагон, который тащит С/С++ паравоз НЕ МОЖЕТ НИКАК БЫТЬ БЫСТРЕЕ ПАРАВОЗА. Поэтому я(да и любой здравый человек) может говорить категорично о тормазах явы.

o2n3e
()
Ответ на: комментарий от shty

Чего то я не вкуриваю... вот есть какая то супер-пупер машина, ява или пусть даже ямайка. Вот она умеет каким то светлым образом предугадывать вызов вирт ф-ии и заместо джампа на таблицу ВФ сразу дергать ВФ. Ну дык вроде ж С++ тоже это с O3 делает... Ок, эта ява или ямайка делает это лучше и ваще никогда не промахивается! Ну дык в типовом коде на плюсах число промахов (когда алгоритма предсказания лажает) это какие то проценты. Ну и про выигрыш под полезной нагрузкой уже сказали... И вот за это эти люди борются О_О?

Мне кажется nanoolinux просто глумится над нами, оправдывая широкий обхват талии и оливковый цвет кожи;-)

AIv ★★★★★
()

Задачка на пару недель-месяц

Boost.Asio, Boost.Regex реализация mysql протокола (серверная сторона)

= получается работающий аналог mysqlproxy. Нужность: - сейчас нет работающего решения, чтобы иметь 10к подключений к mysql без потери производительности - при расширении rewriteами/балансировки по серверам, вообще космической полезености вещь.

ihanick
()
Ответ на: комментарий от AIv

Ну дык вроде ж С++ тоже это с O3 делает...

Ну да, а с O4 он даже сразу, не вызывая функции, возвращает результат. Куда там яве?

LamerOk ★★★★★
()
Ответ на: комментарий от malbolge

Напиши простенький RSS-клиент. А потом оцени вклад буста и потерянное время.

а ты писал или использовал что-то (из буста или что-то что его использует)
для парсинга xml, json-a?

Boy_from_Jungle ★★★★
()
Ответ на: Потомучто. от o2n3e

Я считаю С++ говном, ибо в нём 60% не нужного, его идеалогия протухла(я объясню почему, если интересно).

мне интересно что это за 60% ненужного и что протухло

x905 ★★★★★
()
Ответ на: комментарий от AIv

тут ситуация такая - по результатам исследований компиляторостроителей, для того чтобы делать оптимизации хорошо, необходимо иметь оптимизатор и в compile-time и в run-time, но управляемый run-time (читай ВМ) сам по себе имеет overhead, вот такой вот дуализм :)

по виртуальным функциям, как уже было сказано, во-первых «под нагрузкой» виртуальность даёт сравнительно небольшой вклад, а во-вторых «виртуальность» в терминах промахов кеша даёт эффект сравнимый со switch, например, то есть, с учётом предсказаний ветвлений, при вызове одной и той же функции на одном и том же объекте эффекта можно и не заметить

shty ★★★★★
()
Ответ на: комментарий от x905

Объясняю.

Ущербное стл, пропихивание этого вырвиглазного стл куда нипопадя. Деланье из С++ программистов макак типа делфистов и жабистов, ибо Программист превращается в юезра stl. Развитие stl и ООП головного мозга. Желание нагородить какую-то фигню, вместо того, что бы сделать быстро, просто и красиво. Тупые какие-то рассуждение об «небезопасности», вера в что-то нипонятно, фанатичность.

Если конкретно, то основа моего недовольства - это утпое желание stl, boost и вообще плюсовиков запилить на всё обёртки. Почти всё в плюсах - это тупые обёртки, которые не нужны. Пока ты юзаешь это на уровне «пользователя» - это хорошо, но когда ты захочешь кастомизации - проще выкинуть stl, чем его допиливать. Ну и ооп говлного мозга, как я говорил выше - это ещё одна основа плюсов(stl, людей и т.п.), которая не нужна.

Что протухло? Протухло всё из-за фанатичного становления всех подрят адептами ООП и тотальной боязни «выстрелить себе в ногу». Идея stl хороша, но... Писать 2 строчки для юза stl, что бы не писать 2строчки на С(да, да, теже алгоритмы и прочее, прочее). Читал я тут книжку страуструпа для начинающих, но блин вот возьми любое место в книге и на С это написать проще и быстрее, причем без всякой ООП муры. В чем суть языка, если даже его автор не может придумать применения для него?

Из всего ООП мне нравится только класоподобный интерфейс, и то только для долгоживущих, сложных и часто испльзуемых «объектов». Всяких инкапсуляций, трясок за объекты и прочее, прочее - я не понимаю. Придумали какую-то мистическую опасность и теперь гордят кастыли для того, что бы преодалеть опасность, которой просто нет. Я не понимаю, они для кого пишут свой код? Для макак или для людей? От макакие их кастыли не помогут, а людям они мешают.

С++ - это как идеология ради идеологии, а не ради красоты, удобства, быстроты и т.п.

P.S. Я хотел что-то железное ещё добавить, но забыл.

o2n3e
()
Ответ на: комментарий от AIv

идея в том, что вызов виртуального метода в йаве гипотетически может быть быстрее, чем в с++. допустим есть некий код, в котором падение производительности заключается в том, что много раз вызывается тот самый виртуальный метод. с++ даже с О3 всё равно не выкинет vtable look up, потому-что в compile time практически никогда нельзя исключить случаи когда vtable нужен. jit же работает в ран тайме, и может это сделать. не сразу, конечно, после набора определённой статистики и при наличии некоторых достаточных условий, когда он уверен, что код можно заинлайнить. вот такой гипотетический код, если он будет работать в, допустим, демоне будет работать быстрее.

я не зря написал слово «допустим» много раз. ещё раз повторяю, что акцент в моём первом посте стоял не на том, что йава быстрее с++ (что вероятно правда только в очень (очень очень, если хотите) редком гипотетически достижимом случае), а на том, что не стоит обходить технологии, которые подходят лучше для решения некоторых задач. пусть даже за счёт тормозов, когда это оправдано. в любом случае писать числодробильню на йаве - чистый идиотизм. да и на с++ я бы лучше этого не делал, а делал бы на питоне с заменой узких мест написанных на си.

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

спасибо за внимание.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Только вот.

Не забывай, что GC+сбор статистики невелируют в минус всесь профит от этой оптимизации. И да, даже если мистическим образом(хотя такое не реально) как-то ява будет быстрее, то это БЫСТРЕЕ ЛИШЬ ОДНОЙ РЕАЛИЗАЦИИ, а не быстрее С++. Ибо ничего мне не запрешает запилить это без виртуальных методов, запилить похожую оптимизацию и т.п. В яве ты этого сделать не можешь, что как-бэ намекает. Поэтому даже гипотетически ява можешь быть быстрее только в мечтах жабистов/проектировщиков jit, но даже в мечтах быстрее лишь УЩЕРБНОЙ реализации на С++, но не быстрее С++, о чем я писал выше.

Исходя из железных, сверхобъективных аргументов - ява просто не может быть быстрее, ибо это физически невозможно, даже в отдельных случаях. Никаких редких и «гипотетических» случаев не существует, я уже говорил о паровозе, jit как программы и т.п.

o2n3e
()
Ответ на: комментарий от nanoolinux

с++ даже с О3 всё равно не выкинет vtable look up, потому-что в compile time практически никогда нельзя исключить случаи когда vtable нужен.

ЕМНИП в рантайме он таки его выкидывает, ну по словам старших товарищей. В любом случае, оптимизировать надо узкие места - какой смысел рисовать шашечки нанокраской, если мотор у таксо не тянет;-)

Вроде как наблюдается консенсус. Единственное что - мы числодробилки пишем на плюсах и питоне, и они работают куда быстрее чем даже на чистом С/фортране (ну это я уже троллю в 100500 раз;-)).

AIv ★★★★★
()
Ответ на: Объясняю. от o2n3e

stl

за stl не скажу, не использую, но qt мне очень нравится )

тотальной боязни «выстрелить себе в ногу».

Часто в команде есть люди(библиотеки, части кода), которые не прочь пострелять себе в ногу, например использовать для строк char*, анекдот в тему:

Спит змей-горыныч
Две головы разговаривают
-Знаешь третья голова в рот берет
-А мне пох.ю, лишбы в жопу не давала.

ООП головного мозга

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

x905 ★★★★★
()
Ответ на: Объясняю. от o2n3e

Вау какая бездна экспрессии... Оставляя за кадром плюсовые возможности по перегрузке операторов (есть мнения что это типа тоже не нужно, хотя мне лично это экономит много-много букв при кодинге числодробилок), я бы хотел обратить внимание благородного дона на две плюсовые фичи, за которые все остальное плюсам можно простить:

1. Шаблоны - позволяют писать ОЧЕНЬ эффективный, лаконичный и многократно используемый код.

2. Умные указатели - позволяют забыть (почти) о проблемах сборки мусора.

Я не понимаю, они для кого пишут свой код? Для макак или для людей? От макакие их кастыли не помогут, а людям они мешают.

Пора вылезать из криокамеры. Вопли типа «сильным это не нужно, а слабым не поможет» напоминают предсмертный стон замерзающего мамонта. Точно такие же вопли были по поводу кошек в альпинизме, ремней безопасности в автомобилестроении, паровых машин в кораблестроении и т.д. и т.п. Пока софт писали гении-одиночки это все было ненужно. Как только написание софта превратилось в индустрию, в командную работу - такие вещи как смарт-пойнтеры и проч. плюсовые фенечки стали жизненно необходимы. Да, были гениальные-непобедимые бойцы-одиночки в древней хреции, только всех их в итоге покрошила в капусту пехота в сомкнутом строю, состоявшая из вобщем то посредственных бойцов, умевших хорошо только одно - ходить в ногу;-)

AIv ★★★★★
()
Ответ на: комментарий от Reset

Конечно сейчас совсем нет проектов высонагруженных серверов, и заготовка такого сервера человека который впервый раз это написал будет куда полезнее да.

bhfq ★★★★★
()
Ответ на: Потомучто. от o2n3e

Удел макаки - это результат.

Ты сделал мне день.

Absurd ★★★
()
Ответ на: комментарий от bhfq

Конечно сейчас совсем нет проектов высонагруженных серверов

под твою задачу, естественно, нет

заготовка такого сервера человека который впервый раз это написал будет куда полезнее да.

все когда-то начинали

Reset ★★★★★
()
Ответ на: комментарий от malbolge

Напиши бочку простенькую CMS. А потом оцени вклад буста и потерянное время.

Ггг. Посоветовать ненужно, а потом оценить вклад буста :)

slackwarrior ★★★★★
()
Ответ на: комментарий от malbolge

Раньше говорили «зелен виноград» :) Потому что ополчаться на инструмент из-за неудач в его неправильном использовании - вот это попоболь.

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.