Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

Никто не хочет написать НОВУЮ статью про оптимизацию?   Найти похожие ветки 

 
maxon   (2008-07-08 00:05) [0]

Найдется ли среди вас тот, кто захочет и напишет новую статью про оптимизацию программы? А то новых нет а старые - они старые, да и мало там чего написано.


 
Ega23 ©   (2008-07-08 00:06) [1]

Какую именно программу оптимизируем?


 
umbra ©   (2008-07-08 00:08) [2]

есть прекрасный мануал про оптимизацию приложений для процессора Интел. Можноскачать на сайте Интела. Думаю, про АМД есть аналогичный :)


 
maxon   (2008-07-08 00:16) [3]


> Ega23 ©   (08.07.08 00:06) [1]
>
> Какую именно программу оптимизируем?

Любая на Object Pascal (Delphi) - для большинства и для новичков чтоб...


> umbra ©   (08.07.08 00:08) [2]
>
> есть прекрасный мануал про оптимизацию приложений для процессора
> Интел. Можноскачать на сайте Интела. Думаю, про АМД есть
> аналогичный :)

А какой уровень (сложность в смысле)?


 
umbra ©   (2008-07-08 00:22) [4]


> А какой уровень (сложность в смысле)?

Про оптимизацию для архитектуры процессора :)


 
Ega23 ©   (2008-07-08 00:24) [5]


> Любая на Object Pascal (Delphi) - для большинства и для
> новичков чтоб...


А что тут непонятного?
1. Если можно пройти за один цикл - проходи за один цикл.
2. Сделай вычисления каких-то функций ДО тела цикла
3. Помни, что это только выглядит так просто
for i:=0 to 100 do
 s := s + IntToStr(i);

4. Оптимизация хороша далеко не всегда. Иногда лучше не самый оптимальный, но зато более читабельный код.


 
maxon   (2008-07-08 00:32) [6]

2 umbra:
Неее это не то. Во всяком случае пока...

2 Ega23:
Ну это и так все понятно.
Но, я тут на исходниках.ру читал статью про строки и пришел к выводу, что я о них почти ничего не знаю. Одним словом если есть к.л. недокументированные возможности по оптимизации, то хотелось бы о них знать!


 
Petr V. Abramov ©   (2008-07-08 00:39) [7]


> Ega23 ©   (08.07.08 00:24) [5]
> Иногда лучше не самый оптимальный, но зато более читабельный
> код.

лучше, когда матерится читающий, чем юзающий.


 
maxon   (2008-07-08 00:41) [8]


> лучше, когда матерится читающий, чем юзающий.

+


 
Германн ©   (2008-07-08 02:04) [9]


> maxon   (08.07.08 00:32) [6]
>
> Но, я тут на исходниках.ру читал статью про строки и пришел
> к выводу, что я о них почти ничего не знаю. Одним словом
> если есть к.л. недокументированные возможности по оптимизации,
>  то хотелось бы о них знать!
>

1. Что за статья?
2. Если почти ничего не знаешь, то как можно говорить об "оптимизации"?
3. Ну а "недокументированные возможности по оптимизации того, о чем почти ничего не знаешь" кроме геморроя ничего не дадут. Имхо.


 
Marser ©   (2008-07-08 02:54) [10]

Лучше, когда никто не матерится.


 
iZEN   (2008-07-08 07:21) [11]

Интересно, в Delphi конкатенация строк производится всё так же тупо через перевыделение памяти?


 
Loginov Dmitry ©   (2008-07-08 07:57) [12]

> Интересно, в Delphi конкатенация строк производится всё
> так же тупо через перевыделение памяти?


Если конкатенацию делать через "+" - то тупо через перевыделение памяти. Большое количество операций конкатенации строк может привести к реальным тормозам.

Еще можно делать через Insert(Substr, Dest, Length(Dest) + 1). Результат тотже, однако производительность может быть на порядки выше в связи с резервированием дополнительной памяти менеджером памяти.


 
Anatoly Podgoretsky ©   (2008-07-08 08:45) [13]

> iZEN  (08.07.2008 7:21:11)  [11]

ABCDE а в других языках, что бы объединить B и D как то обходятся что ли.


 
sniknik ©   (2008-07-08 08:46) [14]

> Интересно, в Delphi конкатенация строк производится всё так же тупо через перевыделение памяти?
гораздо интереснее как бы сделал ты, по другому "не тупо"?

> Loginov Dmitry ©   (08.07.08 07:57) [12]
а в случае с + она что не резервируется? менеджер то один, и насколько помню в дельфевских программах им сразу резервируется какоето количество памяти, при старте, а после выделение идет из этого "откушенного" у системы блока (если пользоваться дельфевскими функциями, а не системными).
чтото вроде, в общем. с конкретикой мог напутать.


 
Loginov Dmitry ©   (2008-07-08 08:51) [15]

> а в случае с + она что не резервируется?


в случае с + она, видимо, перераспределяется. Не разбирался, как на самом деле, но видимо что так.


 
ketmar ©   (2008-07-08 11:17) [16]

>[3] maxon (2008-07-08 00:16:00)
>Любая на Object Pascal (Delphi) — для большинства и для новичков чтоб…

купить «Алгоритмы+структуры данных» и учить, как Устав.

---
All Your Base Are Belong to Us


 
oldman ©   (2008-07-08 11:21) [17]

Удалено модератором
Примечание: Флудить завязываем


 
sniknik ©   (2008-07-08 11:34) [18]

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

в обоих случаях (с + возьмем аналог твоего Insert-а -> Dest:= Dest + Substr) на входе есть 2 коротких строки, а на выходе получается одна длиннее, расширить блок памяти в которой находится строка Dest невозможно, без риска "убить" данные с сопредельном блоке, впихнуть длинную строку в меньшую тоже, -> единственный вариант выделить память под новую длину и скопировать туда объединяемые данные. и неважно какой из этих вариантов использовать, факт в виде более длинной строки на выходе присутствует в обоих.

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


 
ketmar ©   (2008-07-08 11:38) [19]

>[6] maxon (2008-07-08 00:32:00)
>если есть к.л. недокументированные возможности по оптимизации, то хотелось бы о
>них знать!

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

---
All Your Base Are Belong to Us


 
sniknik ©   (2008-07-08 11:38) [20]

> купить «Алгоритмы+структуры данных» и учить, как Устав.
она не НОВАЯ. %)

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


 
ketmar ©   (2008-07-08 11:41) [21]

>[20] sniknik © (2008-07-08 11:38:00)
>она не НОВАЯ. %)

а я дату у файла поменяю, на новой бумажке напечатаю — вот и будет новая. %-)

---
All Your Base Are Belong to Us



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.038 c
2-1216278320
PPP
2008-07-17 11:05
2008.08.24
что такое {$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-


3-1204279537
Ega23
2008-02-29 13:05
2008.08.24
Добавить GUID в базу


2-1216645839
antonn
2008-07-21 17:10
2008.08.24
назначить процедуру в событии...


6-1191913609
Motzart_Motzart
2007-10-09 11:06
2008.08.24
Модем


2-1216503960
batya-x
2008-07-20 01:46
2008.08.24
глюк





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский