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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2010, 22:28   #11
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Понеслась.
>> тиражируются компоненты, но не методы, то есть данные но не код.
сокеты тоже данные.
>> а обьект у нас не хранит данные?
То, что обьект хранит данные, не делает его самими данными.
И что запрещает тиражировать код?

Последний раз редактировалось ZaRDaK; 10.07.2010 в 22:34.
ZaRDaK вне форума Ответить с цитированием
Старый 11.07.2010, 14:13   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

то что процедура имеет всего один параметр это адрес.
вы не знаете ни размера её ни прочего.

насчет разгрузки контроллера памяти вы видимо плохо знаете как устроена память в x86(начиная с 386-го)
вы управляете своей виртуальной(адрессное пространнство вашего процесса) памятью, и уже от виндоуз зависит на какой физической(сами планки на этот раз) памяти будут находится нужные вашему процессу страницы.
так что при активном использовании вирт памяти это будет менятся каждую секунду если не чаще.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.07.2010, 15:16   #13
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

Код не проверял.
Код:
procedure proc(i: integer);
begin
Form1.Memo1.Lines.Add(Inttostr(i));
end;
...
New(pointer , sizeof(@proc));
И, да - я пытаюсь разгрузить не контроллер памяти, а участок виртуальной памяти.
Даже если эта "разгрузка" прямо влияет на физическую память.
Я обращаю внимание на память процесса, и её виндовое представление, нежели на физическую память.
ZaRDaK вне форума Ответить с цитированием
Старый 11.07.2010, 15:35   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можете обьяснить зачем это надо?

вы лишь уменьшите производительность, ибо если нужной страницы(с очередной процедурой) не будет в памяти, то будет подкачка.
а если код попадет на границу страниц...то вообще ппц.(фрагментация кода между страницами дело не есть хорошее), с тиражированием кода более чем возможно.
Цитата:
New(pointer , sizeof(@proc));
новый указатель выйдет, ибо @proc = pointer;
тут все хитрее))
я же говорил что к процедуре относится только адрес.

кстати насчет тиражирования данных/обьектов.
вы ведь не клонируете данные, у вас массив и данные в нем различны а не одни и те же.

кстати обьект это форма хранения данных, ибо обьект не хранит кода.(максимум указатель на vmt если класс)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.07.2010, 15:47   #15
ZaRDaK
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 197
По умолчанию

>>новый указатель выйдет, ибо @proc = pointer;
Теперь понял.
Проблему решил вынесением кода в дллку и GetProcAddress.

Последний раз редактировалось ZaRDaK; 12.07.2010 в 10:33.
ZaRDaK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив процедур - как? boris-blade Microsoft Office Word 1 21.02.2010 23:13
динамический массив!!!! zarinka0992 Помощь студентам 1 11.02.2010 09:06
Динамический массив Vito89 Помощь студентам 1 20.10.2009 01:55
Динамический массив Lemo Помощь студентам 5 16.09.2009 06:26
Массив процедур garik Общие вопросы Delphi 0 18.03.2009 21:08