Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Вниз

Вопрос о странном распределении памяти под приложение.   Найти похожие ветки 

 
Бильврёст   (2002-10-07 11:05) [0]

Здравствуйте.
Вопрос следующий.
Имеется программа, использующая MSAgent.
При создании формы:

begin
Application.Initialize;
Application.ShowMainForm:=False;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.


Агент грузится и отображается на экране.
При этом моя прога занимает в памяти около 3.5 Mb;
Если затем делаю:

Form1.Visible:= True;
Application.ShowMainForm:= True;

т.е. показываю форму, то программа занимает уже 6 Mb.
А теперь внимание:
минимизмрую форму и (!!!) программа занимает 300 - 600 kb!
Затем опять востанавливаю (restore) и прога занимает уже 1.6 Mb (а не 6 Mb, как это было при её показе в первый раз)!
Сворачиваю - опять 300-600 kb.
Если при востановленной форме создаю в Run-Time TTable, TSession И TDataSource, то
памяти занимает 1.3 Mb, а при свёрнутой форме и созданными в Run-Time объектами -
вообще не более 350 kb. При этом пиковое значение занимаемой приложением памяти, порою, достигает 8 Mb.

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


 
Smart   (2002-10-07 11:27) [1]

Почему не знаю.
Но если это уж так беспокоит - сделай тупо:
при загрузке - Application.Minimize, Application.Restore,
ну и исходя из вышесказаного будешь иметь свои 1.6 Мб :)


 
Бильврёст   (2002-10-07 13:10) [2]

2 Smart © (07.10.02 11:27):
Ха! Да я так и делал - фигушки. Если Application.ShowMainForm:=False; то Application.Minimize, Application.Restore ничего не меняет.

У кого-нибудь есть ещё идеи?


 
Бильврёст   (2002-10-08 09:58) [3]

up to top


 
REA   (2002-10-08 10:38) [4]

Я подозреваю что дело в борланде и микрософте. Пустая программа с одной формой тоже может немало памяти есть.


 
KSergey   (2002-10-08 11:17) [5]

А чем вы так внимательно следите за памятью? И о какой именно памяти идет речь? Что означает "программа занимает"? Где занимает? Вся программа или как?
Впрчем, возможно что это все побочные эффекты, от которых вы не избавитесь, тем более, что вся эти пляски с бубнами в другой ОС (даже семейства Windows) и не сработают.


 
Бильврёст   (2002-10-08 13:29) [6]

Речь идёт о физической памяти, занимаемой АП моей программы в оперативке.
С помощью "бубнов" мнетаки удалось уменьшить объем занимаемой памяти после работы с базами данных и разного рода файловыми операциями с 10 Mb до 800 kb. Я шаманизм не практикую, но факт налицо.
Вот хотел поинтересоваться у мастеров как такое может быть, да похоже это вообще мало кто знает или народ просто не интересуется сколько их приложение жрёт памяти.


 
KSergey   (2002-10-08 13:59) [7]

Еще раз: как вы определяете "объем занимаемой памяти"?


 
Zemal   (2002-10-08 14:23) [8]

Хрен его знает как его определить... конечно виндовый менеджер памяти выделяет приложению слишком много (намного больше чем надо приложению для работы)... и это порой нерадует :(. Вот написал я недавно сервис под NT и тоже заинтересовался: почему экзэшник размером 480 кило в оперативке съедает 2 мега... нифига не понимаю :(... меня просили оптимизировать сервис, потому что он не один на серваке сидит, вот-с... а я хз как его можно оптимизировать... но!!! я заметил такую вещь: когда винде нехватает памяти, то она начинает отбирать её у сервисов, приложений и т.д. Ну типа щедрый манагер памяти у винды - сначало раздаёт, а потом отбирает... вообще полный отстой... а главное нет средств управления этому мелкософтомскому отстою!!!


 
Бильврёст   (2002-10-08 15:49) [9]

2 KSergey © (08.10.02 13:59):

Ctrl+Shift+Esc - ищем свою программу и смотрим сколько какой памяти она жрёт, пиковое значение и работу с памятью. (всё это в настройках можно выставить что бы показывалось)


 
LordVV   (2002-10-08 16:32) [10]

2 Бильврёст (08.10.02 15:49)

Попробуй сделай ту же операцию с любой другой программой маздая, например с эксплорером. Он ведет себя точно так же, и это замечено довольно давно. Так что, скорее всего, дело не в Борланде, а в мелкософте, и вряд ли ты с этим справишься.
К примеру, запускаю IE, пустой. Он занимает 7.5 Мб, сворачиваю = 480 Кб, разворачиваю - 1.2 Мб. Так что не парься.


 
Zemal   (2002-10-08 16:34) [11]

Хрен его знает как его определить... конечно виндовый менеджер памяти выделяет приложению слишком много (намного больше чем надо приложению для работы)... и это порой нерадует :(. Вот написал я недавно сервис под NT и тоже заинтересовался: почему экзэшник размером 480 кило в оперативке съедает 2 мега... нифига не понимаю :(... меня просили оптимизировать сервис, потому что он не один на серваке сидит, вот-с... а я хз как его можно оптимизировать... но!!! я заметил такую вещь: когда винде нехватает памяти, то она начинает отбирать её у сервисов, приложений и т.д. Ну типа щедрый манагер памяти у винды - сначало раздаёт, а потом отбирает... вообще полный отстой... а главное нет средств управления этому мелкософтомскому отстою!!!


 
REA   (2002-10-08 17:56) [12]

Отстой это да. В XP размер файлового кэша не ограничить в настройках - приходится программно сбрасывать по таймеру.


 
Rouse_   (2002-10-08 21:11) [13]

У меня кстати такиеже чудеса с памятью, я улыбаюсь с этого Microsoft


 
Набережных С.   (2002-10-08 21:57) [14]

Слушали:
Мастдай - отстой?
Постановили:
Мастдай - отстой!!!
P.S.Во всем виноват Билл Гейтс. И Чубайс.


 
Бильврёст   (2002-10-10 12:15) [15]

Да, ребята...
Вот значит как на Мастаках подходят к решению проблем - "Маздай отстой", "...хрен его знает", "забей"...
Жаль :( Пойду на Королевство - там может помогут :(

(а проблему-то я решил, но хочется узнать почему так происходит).

P.S. кстати о Виндах. Вы, кричащие, что Windows отстой сами под этим же Windows и сидите.
Попробуйте поставьте себе FreeBSD или RH со стареньким KDE и настройте его так, что бы всё работало, хотя бы как в "Маздае".
Вот тогда и посмотрим, как вы запоёте.
(ошибок в Виндах много, но любоя ОС такого уровня сложности обречена на то же самое)


 
somone   (2002-10-10 12:53) [16]

2 Бильврёст:
спроси у Digitman-а, Юрия Зотова, Игоря Шевченко или у любого Мастера. Они точно ответят.


 
Бильврёст   (2002-10-10 16:35) [17]

somone:
да что-то не рвутся Мастера отвечать на мой вопрос :(
Хоть бы кто-нибудь подсказал где можно почитать о механизмах распределения памяти, хоть бы на английском - уж я бы сам тогда рано или поздно дотюкал в чём дело.


 
Набережных С.   (2002-10-10 17:35) [18]

> Бильврёст (10.10.02 16:35)
А местА все те же: MSDN, книги, сеть. Информации достаточно, было бы желание. А не отвечает никто по двум причинам(ИМХО):
1) Этот вопрос тут уже не раз обсуждался.
2) Чтобы действительно что-то объяснить, начинать нужно, судя по формулировке вопроса, слишком издалека - места на форуме не хватит. Если же коротко - оставь, как есть. Система лучше тебя знает, как ей оптимально распорядиться памятью, уж поверь.


 
Ketmar   (2002-10-10 18:04) [19]

сорри за оффтопик, но не люблю тупые наезды.

Попробуйте поставьте себе FreeBSD или RH со стареньким KDE
классно. СТАРЕНЬКИЙ KDE считается образцом, да? а Win 3.11 поставить не предложите?
а, кстати. что, RedHat уже считается эталоном? с вашей "линексовостью" тогда многое проясняется...

и настройте его так, что бы всё работало, хотя бы как в "Маздае".
ну работает. и что? ну глючит - потому что KDE. зачем же этого монстра юзать? вот в свое время хватало вполне BlackBox"а. и было быстрее "маздаев". и ничего.

Вот тогда и посмотрим, как вы запоёте.
красиво. с облегчением на отсутствии души.

(ошибок в Виндах много, но любоя ОС такого уровня сложности обречена на то же самое)
потому что отлаживаться времени нету. у рэдмондцев задача - быстрее. а на Линуса того же маркетологи не давят. потому и ошибок на порядок меньше. так что в этом утверждении вы пальцем в небо попали.

Satanas Nobiscum! 10-Oct-XXXVII A.S.


 
Бильврёст   (2002-10-14 16:26) [20]

Набережных С. (10.10.02 17:35):

1) Этот вопрос тут уже не раз обсуждался.
2) Чтобы действительно что-то объяснить, начинать нужно, судя по формулировке вопроса,
слишком издалека - места на форуме не хватит. Если же коротко - оставь, как есть. Система лучше
тебя знает, как ей оптимально распорядиться памятью, уж поверь.


1). Очень упорно я искал и не только в этом форуме - не нашёл. Если можете - дайте ссылочку, буду благодарен.
2). Уж не некомпетентность ли скрывается за упорным нежеланием отвечать?

Вот это понравилось больше всего:

Если же коротко - оставь, как есть. Система лучше тебя знает, как ей оптимально распорядиться памятью, уж поверь.

Можно поинтересоваться - Вы давно программируете?
И сколького Вы добились, руководствуясь этими принципами?

И ещё: то вы орёте, что "Маздай отстой", то вдруг "Система лучше тебя знает, как ей оптимально распорядиться памятью" - странное дело, однако.


Ketmar © (10.10.02 18:04):
RH не эталон, просто я привёл его в качестве примера, т.к. сам с ним работал.
Я и не утверждаю, что я линуксоид пробитый, но поработав и на MAC-ах и на Posix-о образных системах и на системах семейства Windows (особенно NT) могу сказать, что комфортнее всего именно на виндах.
(кстати, Гном - впервые именно на RH появился, если я не ошибаюсь).

Настроили говорите, быстрее... ага, согласен: гонять прогу написанную на фортране для общёта сложный мат. моделей на "голом" юнихе здорово, но вот, к примеру,
поставте ка последний Мандрейк с KDE и посмотрим как он будет летать ;)))
(и игры почему-то в большенстве своём под Windows и Mac делают, а не под Unix-ы - это к вопросу функциональности ОС).

а на Линуса того же маркетологи не давят. потому и ошибок на порядок меньше.

На них давит то, что Ms раньше них реализует в своих ОС новейшие технологии, пусть и не всегда доведённые до совершенства.




 
Song   (2002-10-14 16:29) [21]

2Бильврёст (07.10.02 11:05)
Слушай, а ты не еврей? :-)


 
Бильврёст   (2002-10-14 16:55) [22]

Song © (14.10.02 16:29):
Слушай, а ты не еврей? :-)

Еврей.
А у тебя, что с этим проблемы?


 
Игорь Шевченко   (2002-10-14 17:01) [23]

Бильврёст (14.10.02 16:55)

О распределении памяти можно почитать у Руссиновича (Внутреннее устройство Windows 2000) - очень толково и доступно описано, но слишком большой объем, чтобы пересказывать в форуме.
В двух словах - в данном случае беспокоиться, вроде, не о чем :-)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.009 c
14-78653
Nox
2002-10-04 17:01
2002.10.24
Извините, люди, я, блин, больше не буду!


1-78466
LaResistance
2002-10-12 00:46
2002.10.24
Помогите, люди! Глюк в мей проге!


8-78543
пена
2002-06-24 17:26
2002.10.24
Как заставить MediaPlayer проигрывать в fullscreen режиме


14-78655
sancho
2002-10-04 21:38
2002.10.24
Help для RxLib


3-78272
lutikh
2002-10-02 22:23
2002.10.24
Много таблиц (.dbf). Выбрать одну позицию.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский