Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.24;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.026 c
15-1215076787
Сергей_77
2008-07-03 13:19
2008.08.24
Поиск работы


15-1214918754
iZEN
2008-07-01 17:25
2008.08.24
С сегодняшнего дня прекращены продажи Windows XP


15-1215115864
Petr V. Abramov
2008-07-04 00:11
2008.08.24
Как объяснить женщине


2-1216202147
savyhinst
2008-07-16 13:55
2008.08.24
Ворос про рисование на Canvas


15-1215112003
@!!ex
2008-07-03 23:06
2008.08.24
Как влезть в память приложения?