Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2021, 17:47   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 603
По умолчанию Процедура вызвающая одну процедуру

Такой вопрос: если процедура состоит из одной строки, вызывающей другую процедуру, то как это обработает компилятор? Он же вроде как оптимизирует

Одна процедура вызывает другую, или в машинном коде программы оптимизируется до прямого вызова?
Kronos913 вне форума Ответить с цитированием
Старый 02.08.2021, 20:31   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

Kronos913, зачем вам это? Если хотите понять внутреннюю кухню, научитесь пользоваться отладчиком и изучайте ассемблерный код, там будут ответы на все ваши вопросы.
Arigato вне форума Ответить с цитированием
Старый 03.08.2021, 02:31   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Kronos913 А зачем это нужно?
Это ведь бред какой-то. Процедура ничего не делает, кроме вызова другой процедуры!
northener вне форума Ответить с цитированием
Старый 03.08.2021, 04:06   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

northener, например, добавление новых параметров вызова (в нескольких местах вызывать F1(a), которая вызывает F2(a, b)).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 03.08.2021, 08:55   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Такой вопрос: если процедура состоит из одной строки, вызывающей другую процедуру, то как это обработает компилятор? Он же вроде как оптимизирует

Одна процедура вызывает другую, или в машинном коде программы оптимизируется до прямого вызова?
Есть разные уровни оптимизации. На О1 оптимизируется обращение к памяти за счет использование регистров. На O2 удаляется дублирующий код и незадействованный.
На О3 как раз идет возня с подстановками.
Только вод методы у нас виртуальные и публичные. Так что они должны сохранять так как рантайме могут изменяться. Или к примеру бибилотека подгрузится и будет обращаться к публичным методам. Так что в большенстве случаев такую подстановку ака замену нельзя просто так сделать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 03.08.2021, 12:56   #6
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 603
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Kronos913 А зачем это нужно?
Это ведь бред какой-то. Процедура ничего не делает, кроме вызова другой процедуры!
Процедура-реакция
Какой-то там он-клик, и процедура-реакция вызывает "обычную" процедуру
Kronos913 вне форума Ответить с цитированием
Старый 04.08.2021, 00:39   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Процедура-реакция
Какой-то там он-клик, и процедура-реакция вызывает "обычную" процедуру
Это вполне разумно, если эту процедуру есть необходимость вызывать и не в он-клике. Но в этом случае нет никакого смысла думать об оптимизации нескольких машинных циклов. Он-клики делаются очень редко, ибо человек существо слабое и очень медленное.
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перейти в процедуру, в которой была вызвана другая процедура olenka.ke Паскаль, Turbo Pascal, PascalABC.NET 9 31.10.2015 18:08
Переделать программу, чтобы работала через одну процедуру.. Proskurina Помощь студентам 6 23.11.2012 23:36
переделайте задачу, чтобы она работала через одну процедуру. Proskurina Помощь студентам 4 23.11.2012 23:33
как вызвать одну и ту же процедуру несколько раз barbulina Общие вопросы Delphi 2 28.05.2011 19:16
как выполнить одну процедуру в другой? betirsolt Общие вопросы Delphi 4 22.01.2010 02:24