powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
5 сообщений из 5, страница 1 из 1
Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
    #32031312
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СИТУАЦИЯ:

Запускается откомпилированное на VB6 приложение.
Диспетчер задач/Процессы/Память - 10112КВ. (Win2k)
В preferens подключены библиотеки: стандартные VB, MSADO и MS Exel 8.0 Имеется две формы. На одной лежат элементы MS DataGrid,MS Windows Common controls 6.0 и MS Windows Common controls 6.0-2. На другой ничего нет кроме нескольких текстовых полей. Еще есть 5 модулей, в которых функции. Во второй используется одна DLL для сворачивания формы в systray. На первой настраивается приложение и она загружается из систрея, а потом закрывается. Рабочие процедуры находятся в модулях и форма,которая висит в систрее запускает их. В процедурах и функциях модулей создаются объектные переменные, но после отработки процедуры я их удаляю из памяти.
Тоже самое и для первой формы (Unload перфой формы а не Hide, т.е. память, которую пользуют осх-ы тоже должна освобождается. Если я правильно понимаю, MSADO и MS Exel 8.0 библиетеки при создании объектов, ссылающихся на них, загружаются в память, а при удалении этих объектов библиотеки выгружаются (да и вообще в диспетчере задач для них можно увидеть отдельные процессы, поэтому память, которую они используют не входят 10МБ). На форме, которая свернута в систрей, имеется таймер, по которому срабатывают процедуры и функции из модулей. Так вот, во время простоя приложение занимает 6МБ, во время запуска процедур и функций из модулей 7-8МБ, а при загрузке первой формы 9-10МБ. При чем при выгрузке формы занимаемая память уменьшается обратно до 7-8МБ, а после отработки процедур и функций до 6МБ. Кроме того, пока приложение запущено, занимаемая память не увеличивается (только изменяется в пределах 6-10МБ) Все это я привожу для того, чтобы у вас не возникало подозрений, что память, выделяемая под создаваемые объекты, потом не правильно освобождается.

ВОПРОС: Неужели, стандартные библеотеки VB + одна WinApiDll (для систрея) + 5 небольших модулей могут занимать в памяти 6МБ? Если да, то как можно управлять этим процессом? Если нет, то какой ваще прикол в VB, кроме приставки Visual?

P.S.: Еще в модулях используется несколько public переменных, которые висят в памяти до выгрузки второй формы.

P.P.S.: Люди говорят, что, типа у сервера ресурсов много, и 10МБ это фигня. Возникает еще один вопрос: умные ли эти люди?
...
Рейтинг: 0 / 0
Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
    #32031321
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос действительно не по теме - но дам ответ:

- нельзя оценивать используемые обьемы физической памяти приложений через диспетчер задач
- не за чем следить за памятью, используемой VB, так как в нем отсутствует возможность работы с указателями, а наличие сборщика мусора гарантирует своевременное высвобождение используемых обьектов (кроме конечно циклических ссылок)
- даже по диспетчеру задач и списку используемых вами обьектов можно сказать, что обьем, занимаемый VB вполне божеский и лишнего он не ест. Почему обьяснять не буду, иначе придется пройтись по многим спецификами ОС, COM и VB.

И совет - чем больше вы будете не доверять инструменту на котором пишете, тем дольше и хуже вы на нем будете работать, пытаясь в своей программе обходить не существующие ошибки. Извините - но не будьте параноиком, пишите программы, а насущные глюки того же VB вылезут сами собой, вот тогда уже по делу и будете думать, как их обходить. Уверяю вас - глюклов в нем предостаточно, интересной работы хватит надолго
...
Рейтинг: 0 / 0
Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
    #32031328
Smile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4 ASCRUS

> - не за чем следить за памятью, используемой VB, так как в нем отсутствует возможность работы с указателями

не знаю как с указателями на переменные, но с указателями на функции есть встроенная в VB6 возможность работы

> а наличие сборщика мусора ..............

а что такое сборщик мусора?

И вообще, все это с пожиранием памяти так было задумано в VB или я просто, что-то не так делаю?

Да, кстати, паранойя здесь совсем не причем, просто раньше на VB писал программы для себя, ну там дипломы всякие и т.д. и как то было пофигу скока он жрет памяти, но сейчас, когда написано приложение-клиент, полностью отлаженное и работоспособное (по крайней мере глюков пока замечено не было), которое работает в реальных условиях (а не как дипломная работа) с SQL Server, появилась эта проблема с памятью. Это мое упущение, потому что, как я и говорил, никогда не обращал внимания сколько памяти жрет VB (к примеру, если запустить exe-шник, откомпилированного проекта, в котором есть весго лишь одна пустая форма и больше ничего, то в диспетчере можно увидеть, что он разом жрет более 2МБ).

Не ужели все на VC переписывать?

Да и еще вопрос: что же показывается в Диспетчер задач/Процессы/Память, если не физическая память, занимаемая приложением?
...
Рейтинг: 0 / 0
Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
    #32031356
AlexanderVS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если воспользоваться утилитой System Information (из Norton Utilities), закладка - Память, то можно увидеть, что половина памяти, отъедаемой программой на VB, это разделяемые модули, такие как MSVCRT.DLL, OLEAUT32.DLL и другие.
Так что реальный размер памяти, занимаемой самой прогой и ее ДЛЛ, значительно меньше.
...
Рейтинг: 0 / 0
Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
    #32031597
Strannik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу сборщика мусора:
в VB6 работает он неоднозначно и на системах, которые криво работают с памятью(Win95/9 выделенная память может и не удалиться. Сам сталкивался с этой проблемой, так как после закрытия приложения объем свободной памяти уменьшался на 15-20 мб.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Извините за вопрос не по теме (соседний форум по VB не пользуется популярностью)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]