Текущее время: Сб, авг 02 2025, 02:14

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 10:22 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Tetty написал:
Неужели постоянно возникают задачи, в которых эта экономия настолько существенна??


Живой пример - отчет "Оборотка". Из-за таких вот LOOPов по одному из заводов отрабатывала 3ч 20 мин, после подобной оптимизации стала работать 11мин. А насколько существенна экономия можете посмотреть SE38 -> Cреда -> Примеры -> Примеры производительности -> Internal Tables -> Simple Algorithms -> Nested loops.

Поиграйтесь там числом записей во внешнем и во внутреннем циклах и сразу поймете в чем разница :D

Tetty написал:
Может вообще стоит подобные циклы в виде внешних call`ов на сервере приложений реализовывать? ;)

Это мне напоминает ситуацию "экономии на спичках" в циклах, когда предлагается их разворачивать. Может быть и здорово, но программа получается ужасной:

Code:
Original Code                   Optimized Code
for(i=0; i<n; i++)              for(i=0; i<n-(n%3); i+=3)
a[i] = c[i] ;                     {
                                       a[i] = c[i] ;
                                       a[i+1] = c[i+1];
                                       a[i+2] = c[i+2];
                                     }
                                   for(i;i < n; i++)
                                     a[i] = c[i];


P.S. А ещё можно динамически генерировать код для обработки определённых таблиц в зависимости от математической модели распределения ключей в таблице.


Программа получается такой какой ее написал прогаммист.
Пользователь же не полезет смотреть какая программа :D
Ему важен прежде всего результат :D
------------------------------------------------------------------------
SAP R/3 - бездонная яма кода :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 10:38 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
ROKO написал:
Программа получается такой какой ее написал прогаммист.
А потом другой программист читает её и.......................

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 10:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
vvvictor написал:
ROKO написал:
Программа получается такой какой ее написал прогаммист.
А потом другой программист читает её и.......................

Каждый программист пишет и думает что он пишет шедевр.
А другой программист читает и говорит про себя какое г........
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D

--------------------------------------------------------------------------
SAP R/3 - это бездонная яма кода


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 10:50 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
ROKO написал:
vvvictor написал:
ROKO написал:
Программа получается такой какой ее написал прогаммист.
А потом другой программист читает её и.......................

Каждый программист пишет и думает что он пишет шедевр.
А другой программист читает и говорит про себя какое г........
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D


Когда можно выделить небольшой блок, оптимизация которого даёт выигрыш в 2-3 раза (от общей работы отчёта), то его следует оптимизировать и документировать. Но постоянно делать "хитрые" преобразования для экономии на каждом шаге пары тактов не стоит....

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 10:53 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
ROKO написал:
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D
Золотую середину - чтоб потом не было мучительно больно поддерживать это код и думать с какого перепоя были выполнены какие-либо укрупнения циклов и т.д.

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 10:59 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
ROKO написал:
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D
Кстати а что вы сделаете в этом случае ? Перейдете на ассемблер ? Ведь там можно каждый такт посчитать и сэкономить что-нибудь :wink: :lol:

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 11:03 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
vvvictor написал:
ROKO написал:
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D
Кстати а что вы сделаете в этом случае ? Перейдете на ассемблер ? Ведь там можно каждый такт посчитать и сэкономить что-нибудь :wink: :lol:


А я всегда говорил: нужна производительность - выбросьте SAP GUI и идите работать прямо на Mainframe Ж)))

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 11:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
vvvictor написал:
ROKO написал:
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D
Кстати а что вы сделаете в этом случае ? Перейдете на ассемблер ? Ведь там можно каждый такт посчитать и сэкономить что-нибудь :wink: :lol:

Не знаю как для кого, а для меня как для программиста производительность стояла всегда на первом месте. Но это не говорит о том, что у меня "КОД не причесан". :D
PS: В SE30 смотрю только красную диаграмму :)
----------------------------------------------------------------------------------
SAP R/3 бездонная яма кода :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 11:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
vvvictor написал:
ROKO написал:
Осмелюсь вас спросить, если перед вами стоит выбор "Производительность или красота кода", то что вы выберите? :D :D
Кстати а что вы сделаете в этом случае ? Перейдете на ассемблер ? Ведь там можно каждый такт посчитать и сэкономить что-нибудь :wink: :lol:

Не знаю как для кого, а для меня как для программиста производительность стояла всегда на первом месте. Но это не говорит о том, что у меня "КОД не причесан". :D
PS: В SE30 смотрю только красную диаграмму :)
----------------------------------------------------------------------------------
SAP R/3 бездонная яма кода :D


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 11:56 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
ROKO написал:
Не знаю как для кого, а для меня как для программиста производительность стояла всегда на первом месте. Но это не говорит о том, что у меня "КОД не причесан". :D
Производительность - производительностью, но когда она достигается подобными "ухищрениями"
Code:
Optimized Code
for(i=0; i<n-(n%3); i+=3) {
a[i] = c[i] ;
a[i+1] = c[i+1];
a[i+2] = c[i+2];
}
Это уже начинает напоминать анекдот про алкоголика и кошку: "Ну киса ! Ну еще 5 грамм................"............. Потому я и говорю именно про умеренность в оптимизационных "извратах".

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 11:56 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Программисты непричем. ;-) Вся проблема в консультантах и пользователях, которые 5 раз на дню переделывают свои хотелки, из-за чего вся программа превращается в сплошные заплаты, в которых сам черт ногу сломит.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 11:59 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
vga написал(а):
Программисты непричем. ;-) Вся проблема в консультантах и пользователях, которые 5 раз на дню переделывают свои хотелки, из-за чего вся программа превращается в сплошные заплаты, в которых сам черт ногу сломит.
И такое бывает из-за чего, иногда, приходится делать пришлепки, которые не лучшим образом могут повлиять на производительность................

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 12:03 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
странно, что не упомянули про loop .... assigning.
Интересная статья:
https://www.sdn.sap.com/irj/sdn/weblogs ... b/wlg/2615


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 12:08 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Mike1 написал:
странно, что не упомянули про loop .... assigning.
А с многопоточным кодом никто не эксперементировал ? :lol: :lol: :lol: :lol: :lol:
Или я один такой извращенец ?

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, сен 11 2007, 12:10 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
vvvictor написал:
Mike1 написал:
странно, что не упомянули про loop .... assigning.
А с многопоточным кодом никто не эксперементировал ? :lol: :lol: :lol: :lol: :lol:
Или я один такой извращенец ?


Все циклы надо выполнять фоновыми заданиями НОЧЬЮ, чтобы пользователи не мешались! ;)

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB