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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2024, 01:37   #11
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Плюс, в отличие от многих, я прекрасно помню, как в свое время приходилось учиться в одиночестве и при отсутствии информации (Интернета еще не было)
+100500
Первую свою (ещё учебную) написал в 1979. Первую не учебную в 1982. Учебную на фортране для ЕС ЭВМ, не учебную на паскале для уже и не помню как это чудище называлось, но некий аналог IBM PC.
northener вне форума Ответить с цитированием
Старый 15.04.2024, 02:23   #12
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Вспомнил. Чудище называлось Искра 1030.
northener вне форума Ответить с цитированием
Старый 15.04.2024, 13:38   #13
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 627
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
Автор темы имеет привычку не давать обратной связи после решения вопроса, но замолкает он, как правило, после моих ответов, если они в теме есть. Из чего делаю вывод, что некий контакт налажен.
Прошу прощения. Да, понимаю, немного неэтично выходит - забываю благодарить=(

Я сделал такую процедуру. По CPU показывает что вызов этой процедуры занимает меньше места, чем прямое SetBounds
Код:
Procedure SetBounds21(Object1: TControl; const Left1, Top1, Width1: integer);
begin
  Object1.SetBounds(Left1, Top1, Width1, 21);
end;
Но вот вопрос - а сколько места занимает сама процедура в программе? Как вот это понять?
Kronos913 вне форума Ответить с цитированием
Старый 15.04.2024, 19:13   #14
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Экая зараза Вас взяла, даже сложно предположить. 99.99% что Вам надо от неё избавляться, потому как упорство и прочие качества у Вас есть, но применяете не к месту.

Вот написали Вы обёртку, она "занимает" меньше места, ну да, 4 параметра меньше 5 (в оригинальном SetBounds ещё неявный Self), на одну ассемблерную инструкцию mov сэкономили, но ведь очевидно же, что внутри неё вы всё равно раздули место - поскольку внутри вызывается сама SetBounds, а на это тоже нужны ассемблерные инструкции, или её Вы тоже будете переписывать с залезанием в приватные поля класса ?

Зачем понимать, сколько процедура занимает в программе места ? Вы микроконтроллер пишете или VCL-приложение ? Ну да, можно сказать сколько она занимает, курите ассемблер, опкоды, изучите что такое стек вызовов, что такое регистры, calling conventions, прологи-эпилоги функций. Всё это поможет посчитать сколько байтов реально занимает процедура.

Вот только на кой чёрт оно нужно, если а) по какой-либо необходимости надо добавить параметр
- и всё придётся пересчитывать и б) почти любой добавленный модуль в программе может резко увеличить размер экзешки не на байты (как в случае параметров, да и то не всегда, читайте про выравнивание по 512 байт), а на сотни кб ???

Вопросы не для ответа, а для пробивания Вашей самоуверенности в том, что такие вещи Вам нужны.
А для дзена читайте https://www.gunsmoker.ru/2013/01/opt...on-basics.html

Последний раз редактировалось phomm; 15.04.2024 в 19:15.
phomm вне форума Ответить с цитированием
Старый 16.04.2024, 07:22   #15
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Но вот вопрос - а сколько места занимает сама процедура в программе? Как вот это понять?
Без сторонних инструментов — включить генерацию map-файла с номерами строк и потом ручками посчитать между нужными.
Цитата:
Сообщение от phomm Посмотреть сообщение
Зачем понимать, сколько процедура занимает в программе места ?
Чтобы прочувствовать код и потом нутром чуять, где экономия на спичках и пар в свисток, а где взаправду оптимизация?

Хотя, пример с SetBounds выглядит бредовым. Вложенные вызовы процедур ведь тоже не проходят просто так, они могут сбрасывать конвейер спекулятивного выполнения, например. В компиляторах C/C++ есть оптимизация по скорости и оптимизация по краткости кода, что не одно и то же.

Какова цель сих шаманств?
Vapaamies вне форума Ответить с цитированием
Старый 16.04.2024, 16:09   #16
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

я думал, что это я такой дотошный любитель "выкуривать" из модулей процедуры, которые не использую и заботиться об уменьшении размера приложения хотя бы на пару килобайт и без того "похудевшей" программы.
но нет, истинные мастера и маньяки своего дела, по ходу, живут тут...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 16.04.2024, 18:55   #17
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

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

На самом деле сие логично, ибо ИТ нынче расползлись настолько, что стал сказываться эффект масштаба, а разработчики естественным образом разделились на тех, кто тупо потребляет, и тех, кто привык думать сам и еще пытается барахтаться. Для последних вопрос бездумного раздувания всего лежит на поверхности, ибо не только виден невооруженным глазом, но и обеспечивает наибольшее удовлетворение от проделанного при минимальных трудозатратах.

В последнее время я всё чаще наталкиваюсь на мнение, что мы вплотную подошли к естественной границе экстенсивного роста, и теперь чем дальше, тем больше накладные расходы на обслуживание текущих и грядущих «пузырей» будут превышать возможный выигрыш от них. Отсюда и «нехватка» специалистов, например. Востребованность оптимизации начнет возрастать, что хорошо, но старые методы не сработают, поскольку глобальная задачи отрасли теперь — переход от экстенсивного развития к интенсивному, что требует переосмысления всего, начиная, условно, с 1970 года.
Vapaamies вне форума Ответить с цитированием
Старый 16.04.2024, 21:17   #18
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

При современном уровне развития компьютерной техники нет никакого смысла заниматься низкоуровневой оптимизацией. Объемы диска, оперативной памяти и мощности процессора позволяют об этом не задумываться. При том, что от оптимизации нет никакого эффекта, то есть его невозможно заметить "невооруженным глазом". Только синтетические замеры показывают эффект, а по факту нет никакой разницы. Тогда зачем тратить ресурсы (в первую очередь время) на сие бесполезное занятие?

Естественно, если вы пишете софт под какой-нибудь микроконтроллер или что-то в этом духе, то там все по старинке, так как ресурсы весьма ограничены.
Arigato вне форума Ответить с цитированием
Старый 17.04.2024, 02:07   #19
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
В последнее время я всё чаще наталкиваюсь на мнение, что мы вплотную подошли к естественной границе экстенсивного роста, и теперь чем дальше, тем больше накладные расходы на обслуживание текущих и грядущих «пузырей» будут превышать возможный выигрыш от них.
А я нет.
Ну никак не вижу необходимости подобной "оптимизации" в прикладной программе.
northener вне форума Ответить с цитированием
Старый 17.04.2024, 04:36   #20
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
разработчики естественным образом разделились на тех, кто тупо потребляет, и тех, кто привык думать сам и еще пытается барахтаться.
Цитата:
Сообщение от Arigato Посмотреть сообщение
Объемы диска, оперативной памяти и мощности процессора позволяют об этом не задумываться.
Вспомнил анекдот про алкаша в автобусе:
— Тогда пройди вперед!



Цитата:
Сообщение от northener Посмотреть сообщение
Цитата:
Сообщение от Vapaamies Посмотреть сообщение
В последнее время я всё чаще наталкиваюсь на мнение, что мы вплотную подошли к естественной границе экстенсивного роста, и теперь чем дальше, тем больше накладные расходы на обслуживание текущих и грядущих «пузырей» будут превышать возможный выигрыш от них.
А я нет.
Ну никак не вижу необходимости подобной "оптимизации" в прикладной программе.
Я нигде не предлагал бросить всё и срочно заняться низкоуровневой оптимизацией. Речь скорее о том, что американский подход к решению задач основан на бесконечных компромиссах с последующим латанием дыр, ими порождаемых. Никто не лодырничает, все при деле. Черпай глубже, кидай дальше, защищайся от брызг. Так ведь? Вот только теперь (условные) новые дыры появляются быстрее, чем удается латать старые, и это влияет на отрасль в целом. В этом и состоит кризис. Трудно быть хорошим пожарным, если дом каждый день поджигают. И вы все в этой матрице...

Цитата:
Сообщение от Vapaamies Посмотреть сообщение
но старые методы не сработают
Еще раз заострюсь. Возможно, тему стоит уже разделить.
Vapaamies вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление объектом MexL Общие вопросы C/C++ 1 28.01.2019 22:42
Работа с объектом Request OlgaRostov ASP.NET 2 14.12.2015 22:49
Проблема с COM объектом. Son Общие вопросы Delphi 0 10.01.2013 23:01
слежение за объектом Giku Свободное общение 12 18.04.2012 15:20
Проблема с COM объектом resu654 Общие вопросы Delphi 2 25.05.2009 23:00