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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оптимизация функции, Оптимизировать по скорости 
:(
    Опции темы
zim22
Дата 14.4.2009, 16:54 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(J0ker @  14.4.2009,  16:22 Найти цитируемый пост)
правда в нехорошем смысле слова "панк"

почитал словарь Collins. У панка одни положительные значения за исключением двух:

1) obsolete a young male homosexual; catamite 
2) obsolete a prostitute


J0ker, вы какое имели ввиду? smile


--------------------
PM MAIL   Вверх
vinter
Дата 14.4.2009, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



zim22, Punk - падонок(в современном мире так называют людей, которые пытаются выделится среди других своим идиотизмом)


--------------------
Мой блог
PM MAIL WWW   Вверх
J0ker
Дата 14.4.2009, 17:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(zim22 @  14.4.2009,  16:54 Найти цитируемый пост)
J0ker, вы какое имели ввиду?

http://www.urbandictionary.com/define.php?term=punk
http://www.merriam-webster.com/dictionary/punk
 a usually petty gangster, hoodlum, or ruffian 

Это сообщение отредактировал(а) J0ker - 14.4.2009, 17:13


--------------------
user posted image
PM MAIL   Вверх
zim22
Дата 14.4.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(J0ker @  14.4.2009,  17:12 Найти цитируемый пост)
http://www.urbandictionary.com/define.php?term=punk

улыбнуло.
Цитата

A guy walks up to me and asks 'What's Punk?'. 
So I kick over a garbage can and say 'That's punk!'. 
So he kicks over the garbage can and says 'That's Punk?', and I say 'No that's trendy!



--------------------
PM MAIL   Вверх
GoldFinch
Дата 14.4.2009, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

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



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

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

PM MAIL ICQ   Вверх
mes
Дата 14.4.2009, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(GoldFinch @  14.4.2009,  16:51 Найти цитируемый пост)
mes, 
предпочтительней или даже необходимо не писать код который производит ненужные действия, 

в принципе согласен..но способ достижения я выбрал бы другой, 
В грубом изложении я согласен отказаться от delete  (речь веду о С++ ),
но не в пользу брошенного без присмотра объекта, а в передачи прав на его удаление умному указателю. 
В общем всегда стараюсь придерживаться правила:  функция не знает o том, в каком контексте она работает.
Вы же, насколько я смог представить по Вашим постам, стараетесь нагрузить свою память лишними деталями.
В частности применительно к последним высказываниям, заставляете себя постоянно помнить в какой из функций хватает, а в какой не поставили освобождение памяти.
Хотя  гораздо легче просто писать симметрично.  smile 


Это сообщение отредактировал(а) mes - 14.4.2009, 18:21


--------------------
PM MAIL WWW   Вверх
J0ker
Дата 14.4.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GoldFinch @  14.4.2009,  17:51 Найти цитируемый пост)
предпочтительней или даже необходимо не писать код который производит ненужные действия

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


--------------------
user posted image
PM MAIL   Вверх
azesmcar
Дата 14.4.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



Цитата

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


Предпочтительней и даже необходимо писать код который будет читабельным и понятным. Преждевременная оптимизация - зло!
Программу можно оптимизировать сменив алгоритм, перейдя с С++ на С, в крайнем случае можно еще поизвращатся если нужно очень быстро - и это основные методы оптимизации. А не освобождать память это не то что преждевременная оптимизация, это почти доходит до маразма. Насколько вы повысите произодительность программы убрав delete или free? Просто посчитайте и вы поймете что оно того не стоит.

Добавлено через 2 минуты и 16 секунд
А насчет лишних действий - любая вызванная вами функция в той или иной степени выполняет что либо что возможно на первый взгляд вам и не нужно. Если хотите чтобы код делала только то что вы от него требуете и ничего более - единственный выход писать на ассемблере.
PM   Вверх
GoldFinch
Дата 14.4.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

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



Цитата(azesmcar @  14.4.2009,  19:38 Найти цитируемый пост)
Если хотите чтобы код делала только то что вы от него требуете и ничего более - единственный выход писать на ассемблере. 

такой же код пишется и на С++ и на дельфи, я хз что вы так уперлись в ассемблер
PM MAIL ICQ   Вверх
Lazin
Дата 14.4.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



а что этот код должен делать?
PM MAIL Skype GTalk   Вверх
J0ker
Дата 14.4.2009, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GoldFinch @  14.4.2009,  20:07 Найти цитируемый пост)
я хз что вы так уперлись в ассемблер 

не прикидывайтесь неджедаем  smile 


--------------------
user posted image
PM MAIL   Вверх
sdukshis
Дата 14.4.2009, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если я правильно понял программу, то в ней важно, чтобы данные переписались в новый файл уже в отсортированном виде. Для этого Вы организуете считывание в map, который являясь упорядоченным деревом производит сортировку.

Или возможно Вам нужно исключить или обработать повторяющиеся данные

В первом случае лучше считывать данные в структуру типа vector (с заранее выделенной памятью) или list(хотя если можно заранее оценить размер данных, то лучше vector), а сортировку производить стандартными алгоритмами.

Во втором случае все тоже самое, только обрабатывать дубликаты опять с помощью стандартных функций.

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



PM MAIL   Вверх
zim22
Дата 15.4.2009, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(sdukshis @  14.4.2009,  22:00 Найти цитируемый пост)
В первом случае лучше считывать данные в структуру типа vector (с заранее выделенной памятью) 

зачем память заранее выделять? вектор умный - сам выделит и зарезервирует в придачу.

Цитата(sdukshis @  14.4.2009,  22:00 Найти цитируемый пост)
 или list...а сортировку производить стандартными алгоритмами.

если под сортировкой вы подразумеваете алгоритм sort из <algorithm>, то list в пролёте. у него BiDirrectional Iterators, а не RandomAccess. 
Хотя у list и есть встроенная функция-член sort, но мне кажется она работает медленнее, чем sort из <algorithm>


Это сообщение отредактировал(а) zim22 - 15.4.2009, 07:05


--------------------
PM MAIL   Вверх
vinter
Дата 15.4.2009, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Цитата(zim22 @  15.4.2009,  08:03 Найти цитируемый пост)
зачем память заранее выделять? вектор умный - сам выделит и зарезервирует в придачу.

если не выделить самостоятельно будут overheads

Цитата(zim22 @  15.4.2009,  08:03 Найти цитируемый пост)
Хотя у list и есть встроенная функция-член sort, но мне кажется она работает медленнее, чем sort из <algorithm>

у них одинаковая сложность


--------------------
Мой блог
PM MAIL WWW   Вверх
GoldFinch
Дата 15.4.2009, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

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



Цитата(vinter @  15.4.2009,  09:02 Найти цитируемый пост)
одинаковая сложность

если написано что сложность O(N*log(N))
это может значить что в одном случае N*log(N) а в другом 100*N*log(N)
PM MAIL ICQ   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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