Текущее время: Вс, авг 03 2025, 23:35

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Функции против Классов
СообщениеДобавлено: Чт, авг 28 2008, 15:28 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
А знаете ли Вы? Недавно обнаружил и сам подивился...
Изображение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 15:52 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 26 2006, 15:07
Сообщения: 227
Выдвигаю гипотезу:
каждый раз при запуске фм система проверяет запускался ли какой-нить фм из этой группы, если нет, то загружает все свои глобальные переменные. Скорей всего это отнимает время....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 15:55 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
matel написал(а):
Выдвигаю гипотезу:
каждый раз при запуске фм система проверяет запускался ли какой-нить фм из этой группы, если нет, то загружает все свои глобальные переменные. Скорей всего это отнимает время....

Т.е. аттрибуты класса она вроде как и не загружает?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 16:00 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, окт 26 2006, 15:07
Сообщения: 227
Скорей всего это реализовано иным способом.
К статическим аттрибутам класса можно обратиться в любой момент, к глобальным переменным функциональной группы -- только после запуска фм-а


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 16:03 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
matel написал(а):
Выдвигаю гипотезу:
каждый раз при запуске фм система проверяет запускался ли какой-нить фм из этой группы, если нет, то загружает все свои глобальные переменные. Скорей всего это отнимает время....

Дело в том что система проверяет в случае с ФМ наличие самого ФМ, наличие у него обязательных параметров, отсутствие лишних аргументов в момент выполнения. Для класса, в том виде как он объявлен - это будет сделано на стадии компиляции\активации.
Если немного изменить фрагмент для класса и сделать его некоторым образом "эквивалентным" вызову ФМ, то результат будет другой
Code:
call method ('CL_PERFORMANCE_TEST')=>M1.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 16:47 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
sy-uname написал(а):
Если немного изменить фрагмент для класса и сделать его некоторым образом "эквивалентным" вызову ФМ, то результат будет другой
Code:
call method ('CL_PERFORMANCE_TEST')=>M1.

Это да... Падение производительности реальное. Только вот я не уверен, насколько честно ('CL_PERFORMANCE_TEST') загонять в цикл.
Попробуем так...
Изображение
Но тут надо отдать еще время на создание объекта.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 17:47 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вс, окт 08 2006, 22:57
Сообщения: 81
Пол: Мужской
Это наверное к вопросу что лучше ФМ или классы....)))

Классы конечно лучше.... но не следует забывать и недостатки:
1. Dynpro не может быть элементом класса (в ФГруппе это можно)
2. Вызов метода класса нельзя сделать
CALL METHOD .... STARTING NEW TASK....


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 20:28 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Да нет же.... Я не из религиозных убеждений :)
Просто все время думал, что функции быстрее ООП, и тут такое... ну вот и решил поделиться...

Кстати, все, что вы описали с тем же успехом реализуется через Modul Pool. Я вообще сторонник отделения интерфейса от функционала, где возможно...


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Konstantin Anikeev написал:
Да нет же.... Я не из религиозных убеждений :)
Просто все время думал, что функции быстрее ООП, и тут такое... ну вот и решил поделиться...

Кстати, все, что вы описали с тем же успехом реализуется через Modul Pool. Я вообще сторонник отделения интерфейса от функционала, где возможно...


Компания SAP настоятельно рекомендует:
(а) не использовать подпрограммы (forms), а вместо них статические методы локальных классов;
(б) не использовать пул модулей, а вместо него группу функций.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, авг 28 2008, 23:23 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
(a) почему?
(b) где?


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Konstantin Anikeev написал:
(a) почему?
(b) где?


(а) Использование методов более строго из-за типизации и соответствия параметров, а также есть возможность использовать необязательные параметры. Классы дают ещё один уровень иерархии имён. Сложность реализации не увеличивается. Хотя есть ситуации, когда возможно использование только форм. (Это основные отличия.)

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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 29 2008, 08:32 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Спасибо за разъяснения... Вполне с вами согласен, но мне хотелось бы поиметь ссылочку на SAP... Не для себя, а чтобы показать одному товарищу... ;)


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

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Konstantin Anikeev написал:
Спасибо за разъяснения... Вполне с вами согласен, но мне хотелось бы поиметь ссылочку на SAP... Не для себя, а чтобы показать одному товарищу... ;)


это есть в курсе BC400 (версия этого года)

если наткнусь на *.sap.com, то пришлю

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 29 2008, 09:31 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Tetty написал:
это есть в курсе BC400 (версия этого года)

если наткнусь на *.sap.com, то пришлю

Было бы просто супер... Просто у меня все курсы достаточно старые, года эдак 2003-го...


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

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
если бы в классах была поддержка rfc и v1,v2
вероятно они были бы тормознее чем функции


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

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


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

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


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

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