Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Template + STLport = +25% производительности, не изобретайте велосипедов :) 
:(
    Опции темы
bel_nikita
Дата 9.3.2005, 21:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Применение template и STLport дало +~25% реальной производительности сис-мы в целом, при потере 98КБ. Но что такое 100 КБ при сегодняшних требованиях.
Причем код стал красивее, читабельнее и конечно на пару 1000 строк меньше.

Если раньше прога успевала передать ~43000 пакетов за 10 сек, то после реализации диспетчера, на базе template + STLport, равно >54000 пакетов.

З.Ы.: Что за пакеты и система объяснять не буду. Долго smile

З.Ы.Ы.: не изобретайте велосипедов smile юзайте то, что сделали до и за вас smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Chaos A.D.
Дата 9.3.2005, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 16.1.2005
Где: 09 RUS

Репутация: 6
Всего: 7



Истину говоришь (: Я тоже сначала для каждой проги все свое писать стремился, а потом понял, что все уже написано до нас. STL-ы, boost-ы всякие... Полностью согласен.
--------------------
Надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума...Ken Kesey - One Flew Over The Cocoo's Nest
PM MAIL   Вверх
En_t_end
Дата 10.3.2005, 05:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



А я вот не доверяю им(STLport, boost). Может из-за того, что не умею пользоваться. ЗЫ а вот шаблоны(так как - это стандарт ООП+С++) - это действительно полезная вешь!
Для программ "стремлюсь, буду и есть" писать только своё. Если ПО на продажу, то тем более надо подходить серьезно.
Прирост производительности, чаще всего в 98% можно получить за счет грамотно составленного алгоритма.
PM MAIL ICQ Skype GTalk Jabber   Вверх
Borisff2003
Дата 10.3.2005, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



Цитата

А я вот не доверяю им(STLport, boost). Может из-за того, что не умею пользоваться. ЗЫ а вот шаблоны(так как - это стандарт ООП+С++)


STL тоже в стандарт входит.
А что косается того что реализован он разными производителями, то и компиляторы разные люди пишут.
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
Alastis
Дата 10.3.2005, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 251
Регистрация: 15.11.2004
Где: Казахстан, Астана

Репутация: 4
Всего: 10



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


--------------------
Прости, что я говорю, когда ты меня перебиваешь.
PM MAIL WWW ICQ   Вверх
bel_nikita
Дата 10.3.2005, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



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

STL и шаблоны - вещь - пишут люди, которые реально и грамотно используют template и STL, что ускоряет разработку и повышает производительность системы.
STL и шаблоны - зло - пишут люди, которые не умеют грамотно и правильно использовать template и STL. И которым сказали лет 10 назад, что template "жрет" память.
STL и шаблоны - тема - пишут люди, которые сами толком не умею еще разрабатывать код на основе template, но считают, что это круто, когда шаблоны.
STL использовать не следует, а следует писать при помощи тех же шаблонов свои контейнеры - бред! Тогда уже сразу и компилятор пускай свой напишут.
smile
Добавлено @ 09:49
Цитата
Прирост производительности, чаще всего в 98% можно получить за счет грамотно составленного алгоритма.
Программа - это набор "кучи" алгоритмов. И поэтому составить все алгоритмы грамотно и оптимизировано - потратить в 10 раз больше времени на разработку. Да и все равно, что-то, где-то упустишь.
Правило оптимизации:
1. Никогда не оптимизируй
2. Если все же решили оптимизировать кусок кода - смотри правило №1 smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
En_t_end
Дата 29.9.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Цитата(En_t_end @  10.3.2005,  09:20 Найти цитируемый пост)
А я вот не доверяю им(STLport, boost). Может из-за того, что не умею пользоваться. ЗЫ а вот шаблоны(так как - это стандарт ООП+С++) - это действительно полезная вешь!
Для программ "стремлюсь, буду и есть" писать только своё. Если ПО на продажу, то тем более надо подходить серьезно.
Прирост производительности, чаще всего в 98% можно получить за счет грамотно составленного алгоритма.

WAAGH!!!, через 2  года я осознал, что ошибался smile
PM MAIL ICQ Skype GTalk Jabber   Вверх
DjoNIK
Дата 29.9.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 4
Всего: 5



Цитата

через 2  года я осознал, что ошибался 

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


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
bsa
Дата 29.9.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(DjoNIK @ 29.9.2007,  20:07)
Цитата

через 2  года я осознал, что ошибался 

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

Читай первый пост  smile 
PM   Вверх
JackYF
Дата 29.9.2007, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



оппа, ну и темка была.

Да, да, я согласен. Потратив в 10 раз больше времени на пересоставление и отладку алгоритмы, можно добиться прироста 10% производительности - обобщенно.

И в 99% процентах случаев оно того не стоит smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 29.9.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(bel_nikita @  10.3.2005,  09:43 Найти цитируемый пост)
STL использовать не следует, а следует писать при помощи тех же шаблонов свои контейнеры 

<уклоняясь от уже летящих помидоров>
Не то, чтобы согласен, но поддерживаю smile Почему?

STL - это в первую очередь идеи как таковые, а во вторых чёткая специализация контейнера в STL-style. Скажем, даже банальные мэпы и множества на базе хеш-таблиц включены были очень недавно. Если мне нужен свой котейнер (специфический контейнер - алгоритмов и подходов к хранению коллекций данных масса), почему бы его не сделать? И ещё, все знают, что Qt содержит свой набор контенеров (естественно, stl-совместимых, иначе бы в топку их). Вначале я их не использовал. Из принципа smile Затем, вообщем то перешёл на них (естественно, если Qt используется в проекте в принципе, smile но это верно в большинстве случаев для меня). Почему?

1. Implicit sharing. Кто бы что ни говорил, мне нравиться smile В частности, прямой возврат из функции контейера без большого падения перформанса, да и вообще вещь удобная ИМХО.
2. В Qt часто используются кутешные контейнеры (наиболее раздражающее исключение - получение чайлд-ноудов DOM-узла, этот список - отдельный класс, не stl-совместимый, жутко неудобно :( ). Скакать с одних контейнеров на другие не вижу смысла...
3. Более удобно АПИ. В частности, тот факт, что в QMap/QHash value_type есть именно тип значения, а не std::pair (кутешные итераторы для этих классов кроме разыменования имеют методы key(), value()). Для меня сие удобно.


--------------------
PM MAIL ICQ Skype   Вверх
UnrealMan
Дата 29.9.2007, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 722
Регистрация: 30.3.2006

Репутация: 27
Всего: 32



Цитата(En_t_end @  29.9.2007,  19:35 Найти цитируемый пост)
WAAGH!!!, через 2  года я осознал, что ошибался 

Цитата(bel_nikita @  9.3.2005,  22:42 Найти цитируемый пост)
не изобретайте велосипедов 

А я наоборот осознал полезность изобретения велосипедов. Причём как по соображениям самообучения, так и по соображениям эффективности. Пока что некоторые вещи в STL реализуются неэффективно.
PM MAIL   Вверх
DjoNIK
Дата 30.9.2007, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 4
Всего: 5



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


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
JackYF
Дата 30.9.2007, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(UnrealMan @  29.9.2007,  23:30 Найти цитируемый пост)
Причём как по соображениям самообучения

не, ну это да.

То есть написал велосипед, сравнил со стандартным решением, выкинул.
Через время написал велосипед, сравнил по скорости, остался удовлетворен, сравнил интерфейс, выкинул.
Еще через время переписал велосипед, нашёл компромисс между скоростью и интерфейсом, сравнил оба параметра со стандартными, осознал то, что стандартную реализацию всё-таки не дураки писали (как правило ;)), дальше

либо 1) своё компромиссное решение оказалось не лучше. Оставил себе на память smile
либо 2) добился прироста. Опубликовал, начал развивать
                  2а) потом забил
                  2б) развиваешь дальше, вписываешь своё имя в историю ПО

smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
En_t_end
Дата 30.9.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Цитата(DjoNIK @  30.9.2007,  00:07 Найти цитируемый пост)
Поделись в чем же именно, что бы не повторять чужих ошибок.

Была система в 250 kb чистого кода. Писалась на C++ но большей частью это был C, с велосипедами скрывающими в себе массивы char'ов и прочие опасные вещи. На этапе интегрирования(различных подсистем) и тестирования выявилась ошибка работы с памятью, локализировать которую сразу не смог. Разбираться в 250 kb кода, написанного большей частью ночью не очень хотелось. Выбросил полностью всю систему, оставил только идею подсистем, в итоге применение шаблонов, контейнеров, макросов(хоть и не по теме, но всё же) привело к тому, что с памятью вообще сам не работаю, всё делают вещи из стандартной библиотеки, код ужался до 85 kb кода и стал более читабельным.
Хотя некоторые вещи, такие как суперпозиция шаблонов и наследования не всегда понятны сразу при чтении программы.
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.