Текущее время: Вс, июл 13 2025, 06:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Ссылки и символы полей в ABAP
СообщениеДобавлено: Чт, дек 14 2006, 07:05 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Всем доброго времени суток.

Как-то раз шеф обронил, что "при использовании динамических переменных скорость выполнения программы может возрасти на порядок".

Вопрос: как применяются ref to data и field-symbols в программах?
Как, например, в C/C++ или нет?
Т.е. в С++:
char *start = ...;
int count = ...;
for ( int i = 0, p = start; i < count; i++, p++ ) {
... тут можно себе позволить запись по адресу
}
в ABAP:
loop at itab reference to itab_ref.
.... действия, включающие в себя модификацию данных, на которые
.... ссылается itab_ref
endloop.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ссылки и символы полей в ABAP
СообщениеДобавлено: Чт, дек 14 2006, 08:22 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
linker написал(а):
Всем доброго времени суток.

Как-то раз шеф обронил, что "при использовании динамических переменных скорость выполнения программы может возрасти на порядок".

Вопрос: как применяются ref to data и field-symbols в программах?
Как, например, в C/C++ или нет?
Т.е. в С++:
char *start = ...;
int count = ...;
for ( int i = 0, p = start; i < count; i++, p++ ) {
... тут можно себе позволить запись по адресу
}
в ABAP:
loop at itab reference to itab_ref.
.... действия, включающие в себя модификацию данных, на которые
.... ссылается itab_ref
endloop.


Примеры использования можно найти в сообщениях на форуме:
http://sapboard.ru/forum/search.php

Если же говорить о производительности при использовании динамических переменных, то она повышается за счет уменьшения числа копирований при передаче параметров и т.п., но в abap коде редко встретишь большое количество кода для обработки, так как логика работы чуть иная, поэтому оптимизировать надо в первую очередь работу с БД и использование табличных переменных в программе

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ссылки и символы полей в ABAP
СообщениеДобавлено: Чт, дек 14 2006, 08:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
linker написал(а):
в ABAP:
loop at itab reference to itab_ref.
.... действия, включающие в себя модификацию данных, на которые
.... ссылается itab_ref
endloop.

Посмотрите статистику выполнения программы, и вопросы про указатели отпадут сами собой.
p.s. " здесь вам не равнина, здесь климат иной.."


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 09:37 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Ваш шеф был прав, динамические переменные, создаваемые с помощью оператора new в с++ влекут за собой вызов менеджера динамической памяти, который собственно эту память выделяет, перераспределяет, удаляет, запускает очистку памяти и т.д. Поэтому скорость его работы может быть достаточно низкой, в отличии от использования глобальных (для который память уже выделена при запуске экземпляра программы) или локальных (создаваемых на стеке) переменных. Но в любом случае, скорость обращения к оперативной памяти на несколько порядков выше, чем доступ к информации на жестком диске, обработке на сервере базы данных и передаче ее по локальной сети, то есть тем операциям, которые возникают при работе с базой данных.
Поэтому увеличение производительности программы сводится к написанию оптимальных запросов к базе данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 14 2006, 10:04 
Ассистент
Ассистент

Зарегистрирован:
Вт, сен 26 2006, 06:57
Сообщения: 47
Спасибо за ответы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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