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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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