![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программа в сессии терминального сервера
DmiSb © (2005-08-23 08:32:00)Уважаемые мастера, дайте совет.
Нужно написать программу, которую предпологается запускать в окне терминального сервера. Пользователей около 30. Запуск 30 копий программы скушает значительное количество памяти терминального сервера. Даст ли экономию памяти компиляция программы без пакетов или лучше часть общей функциональности вынести в *.dll ?
Возможно кто-то уже задавался этим вопросом или писал что-то подобное.
Defunct (2005-08-23 20:59:00) [1]> begin...end
не пользуйтесь русской виндовс. там много чего неправильно переведено.
Defunct (2005-08-23 20:52:00) [2]> begin...end © (23.08.05 20:40) [21]
Конечно. Memory Usage - это кол-во занятой виртуальной памяти. VM Size - зарезервированное адресное пространство ВП.
Memory Usage
In Task Manager, the current working set of a process, in kilobytes. The current working set is the number of pages currently resident in memory.
Defunct (2005-08-23 20:45:00) [3]> Alexander Panov
ИШ imho в курсе, что отображается (в диспетчере задач), а вот автор ветки скорее всего нет.
begin...end (2005-08-23 20:40:00) [4]> Defunct © (23.08.05 20:33) [19]
> taskmgr в WinXP другую память показывать не умеет.
Видимо, не составит труда объяснить, в чём причина различия показаний столбцов "Память" и "Виртуальная память".
Alexander Panov (2005-08-23 20:37:00) [5]Defunct © (23.08.05 20:33) [19]
Во всяком случае мне.
Автор вопроса ведь не виноват в этом.
Defunct (2005-08-23 20:33:00) [6]Alexander Panov © (23.08.05 20:22) [18]
Во всяком случае мне. т.к. taskmgr в WinXP другую память показывать не умеет.
Alexander Panov (2005-08-23 20:22:00) [7]Defunct © (23.08.05 19:59) [17]
Ясно что виртуальной.
Кому ясно?
Defunct (2005-08-23 19:59:00) [8]Игорь Шевченко © (23.08.05 16:04) [16]
> Какой памяти ?
Ну и к чему этот вопрос? Ясно что виртуальной.
Игорь Шевченко (2005-08-23 16:04:00) [9]Slym © (23.08.05 13:12) [13]
> Программа (если не упакована) 1 раз рагружается в память
> (и в своп) и все скока бы ее не запускали...
Неправда. Она вообще в память не загружается и тем более, не остается там.
DmiSb (23.08.05 13:14) [14]
> Программа запущенная в ХР (в диспетчере задач) отъедает
> в среднем 15-20 Мб.
Какой памяти ?
Alexander Panov (2005-08-23 13:49:00) [10]DmiSb (23.08.05 13:14) [14]
Программа в принципе и есть клиент-сервер. Но часть машин совсем слабых, и мы подумали может быть на их базе организвать тонких клиентов под терминальный сервер. Потому и возник вопрос о том, сильно ли это затормозит сервер, если повесить на него 30 тонких клиентов с нашей программой.
Под Клиент-Серверной технологие не имеется ввиду терминальный доступ, а вариант, в котором основная пожирающая память часть выделена в отдельную программу, которая зхапускается в отдельном экземпляре и обеспечивает обмен с клиентскими программами, запущенными в терминальных сессиях.
DmiSb (2005-08-23 13:14:00) [11]Anatoly Podgoretsky
>Кстати а о какой памяти ведешь речь?
Программа запущенная в ХР (в диспетчере задач) отъедает в среднем 15-20 Мб.
Alexander Panov
>Если же именно это и будет происходить, то, возможно стоит >подумать о разделении программы на 2 части - по >функциональности: Сервер и Клиент
Программа в принципе и есть клиент-сервер. Но часть машин совсем слабых, и мы подумали может быть на их базе организвать тонких клиентов под терминальный сервер. Потому и возник вопрос о том, сильно ли это затормозит сервер, если повесить на него 30 тонких клиентов с нашей программой.
Slym (2005-08-23 13:12:00) [12]Программа (если не упакована) 1 раз рагружается в память (и в своп) и все скока бы ее не запускали...
А вот dll нет... Она может 1 раз загрузится, а может и 30 в зависимости от настройки BASE_ADDRESS и порядка загрузки длл в программу:
может оказаться что BASE_ADDRESS уже занят и загрузчику придется перестраивать табл и соответственно занимать доп виртуальную память (ИЛИ Я ЧТО-ТО ПУТАЮ, НО ВРОДЕ ТАК)
Anatoly Podgoretsky (2005-08-23 12:59:00) [13]Кстати а о какой памяти ведешь речь?
Anatoly Podgoretsky (2005-08-23 12:58:00) [14]DmiSb (23.08.05 12:31) [8]
Даст, незначительную, возможно тебе не удастся это увидеть.
BiN (2005-08-23 12:51:00) [15]DmiSb (23.08.05 12:31) [8]
Даст ли экономию памяти компиляция программы без пакетов ?
Нет.
Alexander Panov (2005-08-23 12:44:00) [16]DmiSb (23.08.05 12:31) [8]
Для терминального сервера только одно решение - увеличение ОП.
Но и недостаток ее будет влиять только лишь на производительность. Не думаю, что твоя программа будет постоянно требовать актуальным огромный кусок в оперативной памяти.
Если же именно это и будет происходить, то, возможно стоит подумать о разделении программы на 2 части - по функциональности: Сервер и Клиент.
DmiSb (2005-08-23 12:31:00) [17]Игорь Шевченко
>Кроме программы для терминального сеанса запускается еще очень >много программ. Например, вся подсистема Win32. Я очень надеюсь, >что программа вряд ли сравнится по потреблению памяти с >указанной подсистемой.
Это уж точно, но хотелось бы помочь серверу. Тогда поставим вопрос конкретно: Даст ли экономию памяти компиляция программы без пакетов ?
Игорь Шевченко (2005-08-23 12:27:00) [18]DVM © (23.08.05 12:08) [4]
> Память кушает программа, т.к. запускается одновременно несколько
> ее копий, что видно в таскменеджере.
Кроме программы для терминального сеанса запускается еще очень много программ. Например, вся подсистема Win32. Я очень надеюсь, что программа вряд ли сравнится по потреблению памяти с указанной подсистемой.
DVM (2005-08-23 12:16:00) [19]
> Anatoly Podgoretsky © (23.08.05 12:10) [5]
Тогда глядите диспетчер служб терминалов - процессы
Anatoly Podgoretsky (2005-08-23 12:10:00) [20]Не стоит так сильно верить диспетчеру задач.