Здравствуйте, Alexey Chen, Вы писали:
AC>Хм, STL... переезд с одной версии копилятора на другую, резкое падение производительности.... предолжения? AC>Основных причины было две, по другому реализованы алокаторы и list имел линейную сложность для size().
Ну про сложность различных операций и алгоритмов в STL прекрасно написано английским по белому в документации.
В том числе и про list::size().
Обращаю внимание — написано в документации, т.е. в стандарте языка. У многих ли велосипедов вообще есть документация?
А с такими подробностями?
Есть небольшой тест — сколько программистов в проекте должен переехать грузовик, чтобы проект встал раком на энное время?
С велосипедами обычно достаточно переехать одного программиста, чтобы проект встал надолго, примеры долго искать не надо...
AC>Про std::string на нескольких процессорах вспоминать будем?
А вот это конкретный косяк реализации строк в конкретной реализации STL. Наоптимизировались, copy-on-write устроили.
Мало того, с вероятностью близкой к единице везде, где есть такие оптимизации, будут проблемы (и с производительностью тоже).
AC>Хм, задача, нужно переключать контексты при нотификации кондишина, не как получится, а по порядку. Решение? AC>Не забываем что хип в многопоточноп коде — просад производительноси в 5-10 раз. AC>А потом думаем, что лучше, сделать свой список и держать ноду в стеке функции ожидания, или юзать std::list, но через задний проход.
Тут надо не забывать, что:
1) не всегда просад есть
2) даже когда он есть, он может вообще не влиять ни на что
Если же вилы — то оптимизируем. Причем тут еще думать надо, лечить ли следствие или причину.
--
Vitaly Belekhov
Re[5]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, jazzer, Вы писали:
J>>А я вот вспоминаю свои собственные впечатления, когда в однострочной формуле из квантовой механики разбираешься месяц. S>Ну ты крут! Мало кто может за месяц понять сакральный смысл E=Hф ;)
Если помнишь, сие уравнение и все члены, в него входящие — комплекснозначные.
Добавь в уравнение нестационарный член, попробуй раскрутить потом все это по квазиклассике — сразу можно вспомнить про многолистные функции (помнишь ТФКП?) и над этим помедитировать с годик. А то и с десяток.
Здравствуйте, jazzer, Вы писали:
J>Если помнишь, сие уравнение и все члены, в него входящие — комплекснозначные. J>Добавь в уравнение нестационарный член, попробуй раскрутить потом все это по квазиклассике — сразу можно вспомнить про многолистные функции (помнишь ТФКП?) и над этим помедитировать с годик. А то и с десяток.
Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил.
Перекуём баги на фичи!
Re[6]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, VVB16, Вы писали:
VVB>Здравствуйте, Alexey Chen, Вы писали:
AC>>Хм, STL... переезд с одной версии копилятора на другую, резкое падение производительности.... предолжения? AC>>Основных причины было две, по другому реализованы алокаторы и list имел линейную сложность для size(). VVB>Ну про сложность различных операций и алгоритмов в STL прекрасно написано английским по белому в документации. VVB>В том числе и про list::size().
Ссылочку в стандарте пожалуйста. Или ты про доку к конкретному STL'ю? Дык мы вроде говорим о том, что оно везде одинаково работает
Вот в пункте 23.1 говорится, что, вообще говоря, типа должна быть константная. Дальше внимательно смотрим, горячо нами любимый, STLport и видим что она, блин, линейная. Странно да?
AC>>Про std::string на нескольких процессорах вспоминать будем? VVB>А вот это конкретный косяк реализации строк в конкретной реализации STL. Наоптимизировались, copy-on-write устроили. VVB>Мало того, с вероятностью близкой к единице везде, где есть такие оптимизации, будут проблемы (и с производительностью тоже).
И тоже везде одинако работает?
Я про то что C++ — это совсем не стандарт, а набор рекомендаций, и STL не везде и не всегда одинаково работает.
Это не значит что его не надо использовать, это значит, что не надо повторять на каждом углу миф о его абсолютной портабельности.
AC>>Хм, задача, нужно переключать контексты при нотификации кондишина, не как получится, а по порядку. Решение? AC>>Не забываем что хип в многопоточноп коде — просад производительноси в 5-10 раз. AC>>А потом думаем, что лучше, сделать свой список и держать ноду в стеке функции ожидания, или юзать std::list, но через задний проход. VVB>Тут надо не забывать, что: VVB>1) не всегда просад есть VVB>2) даже когда он есть, он может вообще не влиять ни на что VVB>Если же вилы — то оптимизируем. Причем тут еще думать надо, лечить ли следствие или причину.
Нда... в общем замечания верные но не в данном случае. Тут именно тот случай когда мне предлогают юзать, что есть, по тому, что так принято, а здравый смысл, как обычно, идет лесом
VVB>Vitaly Belekhov
Да Виталя, я конечно понимаю, что в твоих глазах я последний ламер, но задачу ты явно не понял.
Re[8]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Glоbus, Вы писали:
G>Никто тебя не заставляет использовать буст или стл. Опять же — это одни из многих решений. Не нравятся контейнеры стл — юзай мйц-шные, или свои пиши. Это ж дело вкуса. Однако некоторые вещи оказываются настолько удачными и широко применимыми (стл например) что число людей их пользующих возростает многократно. поэтому у тебя очевидно сложился какой-то стереотип относительно того что тебе чтото навязывают.
Здравствуйте, Mr. None, Вы писали:
MN>Внесу свои пять копеек. Забудем о регистрах, тем более, что я и сам стараюсь никогда не опускаться до такого уровня. Программист, использующий .NET или Java, существенно зависит от разработчика соответствующего Framework`а, потому что без него родимого вы практически ничего сделать не сможете. Сложность нестандартной задачи — задачи, не решаемой напрямую или косвенно фраймоворком, возрастает многократно.
Эээ... А что, на С++ не та же фигня?
Программист на С++ не зависит от того же STL?
Здравствуйте, serg_mo, Вы писали:
_>Здравствуйте, Mr. None, Вы писали:
MN>>Внесу свои пять копеек. Забудем о регистрах, тем более, что я и сам стараюсь никогда не опускаться до такого уровня. Программист, использующий .NET или Java, существенно зависит от разработчика соответствующего Framework`а, потому что без него родимого вы практически ничего сделать не сможете. Сложность нестандартной задачи — задачи, не решаемой напрямую или косвенно фраймоворком, возрастает многократно.
_>Эээ... А что, на С++ не та же фигня? _>Программист на С++ не зависит от того же STL?
Спроси себя — могу ли я на плюсах писать без STL?
Конечно да.
А могу ли я написать класс джавовский без фреймворка?
Конечно нет.
Конечно некоторая аналогия есть в ситуациях, но очень хлипкая, имхо
Re[9]: Проф. пригодность, boost, Александреску и Ko
Ну так я не понял в чем соль? Человек говорит тебе, что есть библиотеки — продуманные и вылизанные, гарантирующие отсутствие ошибок и гарантирующие определенные возможности — почему не пользовать их? Давай пример попроще приведу. Есть функция синуса, вшитая в язык. Почему ты не пишешь свою, если так не доверяешь библиотекам? или ты признаешь только голый язык — типа грамматика + компилятор и никакие библиотеки тебе не нужны?
Ты ж пойми — о бусте говорят как о стандарте де-факто не потому что это модно, а потому что он вобрал в себя кучу типовых решений, так же как это сделала стл к примеру. А стандартизация таких вещей как буст и стл приведет только к повышению их качества, потому что там в комитете очень нехилые перцы рубятся за каждую фичу языка. Так что ты зря волнуешся — с надежностью там все пучком
Удачи тебе, браток!
Re[5]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, _alm_, Вы писали:
К>>Благодаря этому вовсю живёт Fortran. Правда, F-90 уже больше напоминает VB6, но старообрядцы до сих пор могут насладиться его подмножеством (!) F-IV.
__>Фортран (насколько я знаю, общаясь с людьми, которые до сих пор предпочитают реализовывать алгоритмы на нем) живет за счет того, что несмотря на то, что его BNF грамматика была выведена тык-скыть "апостериори", дерево разбора проги на Фортране цитирую "лучше оптимизируется, чем С". Я — не могу понять (если честно) как так может быть. Но (в качестве косвенного доказательства) — Ватком до последнего развивал как С/С++, так и Фортран.
Так в нем нет динамической памяти (по крайней мере, раньше не было).
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, mefrill, Вы писали:
M>И потом, а кто мешает развивать си++? Берешь, дополняешь язык новыми конструкциями, делаешь компилятор и пускаешь его в свободное плавание. Вопрос только в том, приживется ли такой язык или нет. Если кто помнит, параллельно со Страустром было несколько проектов ОО си языка. Но си++ люди приняли, а другие никто и не помнит.
На самом деле, распространенность и "признание" во-многом зависят от двух вещей: реклама; персональный компьютер.
Кто знал о пакале до турбо-паскаля? Персоналки сыграли свою решающую роль. Ну и реализация удачная была. Но самое главное — цена!!!!!!! 49.50 $
Сам язык играет гораздо меньшую роль, чем его реализация и маркетинг.
Языки Вирта тому пример — посчле паскаля он создал еще 2: Модула и Оберон. И что? M>Здесь еще вопрос, стоит ли вообще дополнять си++ новыми синтаксическими конструкциями или нет. На самом деле, язык уже очень сложен, и такое добавление его только еще больше усложнит. Может быть поэтому, начиная с определенного момента, перестали пополнять си++ новыми конструкциями и обратились к расширению библиотек?
M>Вопрос на самом деле стоит так: каждый ли программист (человек) может (должен?) изучить си++ или для кого-то это невозможно ввиду его ограниченых способностей?
На моей кафедре — обязательный язык. А способностей не хватает — в продавцы компьютеров!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, jazzer, Вы писали:
J>>Если помнишь, сие уравнение и все члены, в него входящие — комплекснозначные. J>>Добавь в уравнение нестационарный член, попробуй раскрутить потом все это по квазиклассике — сразу можно вспомнить про многолистные функции (помнишь ТФКП?) и над этим помедитировать с годик. А то и с десяток.
К>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил.
Да ладно мужики, выпендриваться
Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно)
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, StanislavK, Вы писали:
SK>>Думаю, что никак. Людей, которые обожают C++ для всего (т.е. говорят, что это универсальный современный язык, а не низкоуровневое средство), на мой взгляд, можно вполне назвать синтаксическими онанистами (только не бейте ).
ГВ>Ударим железным кулаком синтаксического онанизма по компонентной проституции!
Не народ, не понимаете вы ничего в сексуальной ориентации
Это правильно называется "синтаксический мазохизм"!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, Patalog, Вы писали:
P>А поглядеть можно?
Нельзя, поскольку это решение заменило log4cpp. Но принципы могу раскрыть поподробнее.
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[8]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Кодт, Вы писали:
К>>Здравствуйте, jazzer, Вы писали:
J>>>Если помнишь, сие уравнение и все члены, в него входящие — комплекснозначные. J>>>Добавь в уравнение нестационарный член, попробуй раскрутить потом все это по квазиклассике — сразу можно вспомнить про многолистные функции (помнишь ТФКП?) и над этим помедитировать с годик. А то и с десяток.
К>>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил. LVV>Да ладно мужики, выпендриваться LVV>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно) LVV>
что тут выпендриваться — я чуть диссер на эту тему не написал
Здравствуйте, jazzer, Вы писали:
К>>>Офф: кто-нибудь, можете поделиться ссылочкой на тему "волосы экспоненты". Помню, что было что-то очень математически красивое, да конспекты по ТФКП не сохранил. LVV>>Да ладно мужики, выпендриваться LVV>>Я из NARG помню только одно слово "вычет" (абсолютно забыв при этом, что оно означает — и не надо мне объяснять, все равно тут же забуду, уже сознательно) LVV>>
J>что тут выпендриваться — я чуть диссер на эту тему не написал
Про волосы или про вычеты? Если про волосы — то хотя бы скажи, куда искать. Гугл мне не помог.
Перекуём баги на фичи!
Re[6]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, LaptevVV, Вы писали:
LVV>На самом деле, распространенность и "признание" во-многом зависят от двух вещей: реклама; персональный компьютер. LVV>Кто знал о пакале до турбо-паскаля? Персоналки сыграли свою решающую роль. Ну и реализация удачная была. Но самое главное — цена!!!!!!! 49.50 $
Хммм... 1987 или 1988 г., ЕС-1035, СВМ, R-PASCAL — курсовики точно на нём писали.
Потом, AFAIK, в успехе турбо-паскаля основную роль сыграла интегрированная среда. А реклама была что-то там на одну страницу BYTE. Хотя, может быть, это я какую-то легенду Борландовскую пересказываю.
LVV>Сам язык играет гораздо меньшую роль, чем его реализация и маркетинг.
Так вроде бы C++ — то без особого маркетинга распространился. Вот что интересно...
... << RSDN@Home 1.1.3 stable >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[10]: Проф. пригодность, boost, Александреску и Ko
G>Ну так я не понял в чем соль? Человек говорит тебе, что есть библиотеки — продуманные и вылизанные, гарантирующие отсутствие ошибок и гарантирующие определенные возможности — почему не пользовать их?
Нет, он говорил о том, что некие люди пишут плохой код, но если бы они использовали STL/BOOST то всем было бы счастье... но как я уже говорил в других топиках, до первого столба. Почему он так думает я не знаю. Но он ведь не только так думает, а считает что это ЕДИНСТВЕННО ПРАВИЛЬНОЕ мнение. Если мение не правильное смотри пункт первый Чем подкреплено это мнение? Сравнением удачного и не удачного проекта? И только. Я вот знаю обратную картину. Какой можно сделать вывод? Дело не в STL'е или BOOST'е, а в людях. Меня же интересовало почему эти самые люди думают иначе. На что мне отвечают, что дык, правильно думают, по той причине что смотрите ... дальше идет текст приведенного топика.
G>Давай пример попроще приведу. Есть функция синуса, вшитая в язык. Почему ты не пишешь свою, если так не доверяешь библиотекам? или ты признаешь только голый язык — типа грамматика + компилятор и никакие библиотеки тебе не нужны?
Наверное по тому, что реализация синуса меня устраивает, а вот когда мене для задачи не устраивает функция генерации случайных чисел я пушу свою.
G>Ты ж пойми — о бусте говорят как о стандарте де-факто не потому что это модно, а потому что он вобрал в себя кучу типовых решений, так же как это сделала стл к примеру.
Которые в большенстве своем решают выдуманные проблемы, а те, что решают типовые? могут быть реализованы существенно проще и гораздо прозрачнее.
Ладно фиг с ним, с бустом. У нас есть много универсальных контейнеров, которым даже можно определить свои алокаторы и отношения порядка, но весь код работающий с этими контейнерами, (!) должен быть шаблонным. Иначе он будет работать только с конетенером имеющим конкретный аллокатор и конкретное оношение упорядочения. Круто, да? Тоесть функция которой надо взять из хеша/мапа/листа/... значение, должна знать, как контенер распределяет память и вычисляет ключи... мега дизайн!!!! А если мы вдруг соберем один модуль с одним STL'ем, а другой с другим... баах!!! Странно а компилер вроде один, и конструкции тоже. Вот я и не понимаю почему это правильно? А мне, я так полагаю, нужно этим пользоваться, ибо это единственно верный путь для профессионального программиста.
Мы вроде как не про программеров-любителей говорим, правильно? Как алгоритмы работают занем, как тесткейсы писать тоже. И опыт некоторый имеется. Вот у меня и возникает вопрос, что мне дают контейнеры STL'я, кроме гемороя с его кривой (сорри, специфической) архитектурой? Ответ — стандартность, причем мнимую. Только стандартность, но ни как не стабильность, переносимость, производительность. А если еще и BOOST будет двать стандартность ...
У нас в команде есть подобные классы, оттестированные на классе решаемых ими задач. Совершенно детерминированные на тех платформах с которыми мы работаем. Но почему-то когда я пользую их, кулл программеры, разбрасывают пальцы веером и говорят — уууу... ламер, БЮСТА не тебя нет! А в приведенном, как пример, топике, человек четко говорит — УВОЛЬНЯТЬ! Вот это промывка мозгов, это я понимаю!!!
Re[8]: Проф. пригодность, boost, Александреску и Ko
Здравствуйте, jazzer, Вы писали:
J>Удивительно, что люди, зная о существовании нормальных оттестированных библиотек, пишут свои велосипеды, которые дай бог чтобы на 30% покрывали возможности этих библиотек и давали хотя бы 40% их устойчивости, и кричат на всех углах, что они круче всех. И их крикам верят все, кроме несчастных пользователей их велосипедов.
Может они пишут эти вилосипеды, чтобы те покрывали нужды именно этих людей а не решали некие абстрактные проблемы