Как уменьшить размер проги в оперативе

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Как уменьшить размер проги в оперативе

Сообщение Kostuch » 19.07.2004 (Пн) 16:20

Собственно сабж, а то моя маленькая прога занимает аж 10 метров оперативы хотя занимает 286 килобай.
Последний раз редактировалось Kostuch 19.07.2004 (Пн) 18:47, всего редактировалось 1 раз.
[Kostuch]

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 19.07.2004 (Пн) 18:25

الفيجوال بيسك الرابح

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 19.07.2004 (Пн) 18:30

Это что за отстойная ссылка ?, ты хоть сам то читал что там ?.. там ответа нет на мой вопрос.. там они сами не знают что делают ... в итоге делали-делали, и ничего не вышло уменьшить... в оперативе как было так почти и осталось... ладно.. жду проффи. может кто что подскажет...
[Kostuch]

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 19.07.2004 (Пн) 19:03

Вообще-то никак. Грамотный memory management тебе может слегка помочь - ну, выгружать формы, когда они не отображаются, то же самое с классами, когда не нужны, и т.д. Но учти, что тут всегда платишь быстродействием - ту же форму, чтобы она перестала занимать в памяти место, надо выгрузить, а это время. Более того, когда она понадобится в следующий раз, ее придется загрузить, а это тоже время. Самое же фиговое во всем этом то, что зачастую активно юзается винт, который никогда не бывает быстрее оперативки. Вот и думай, что для тебя важнее - скорость или размер занимаемой памяти. Учитывая, что скорость никогда не была сильной стороной VB, я бы даже думать не стал...

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 19.07.2004 (Пн) 19:36

А можно узнать как выгрузить фромы, классы, потому что как я выгружаю не уменьшается размер в оператива ?
[Kostuch]

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 19.07.2004 (Пн) 21:43

Kostuch писал(а):Это что за отстойная ссылка ?, ты хоть сам то читал что там ?.. там ответа нет на мой вопрос.. там они сами не знают что делают ... в итоге делали-делали, и ничего не вышло уменьшить... в оперативе как было так почти и осталось... ладно.. жду проффи. может кто что подскажет...

Нечего орать.Что нашел то и выложил. :evil:
الفيجوال بيسك الرابح

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 20.07.2004 (Вт) 8:21

GM писал(а):Нечего орать.Что нашел то и выложил. :evil:

Ну так перед тем как выкладывать , желательно прочитать, потому что я тоже поиском пользоватся умею....
[Kostuch]

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 20.07.2004 (Вт) 8:38

Может тебе вот эти статьи помогут...
http://www.vbstreets.ru/VB/Articles/42697.aspx
http://www.vbstreets.ru/VB/Articles/65507.aspx

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 20.07.2004 (Вт) 13:36

baha76 писал(а):Может тебе вот эти статьи помогут...
http://www.vbstreets.ru/VB/Articles/42697.aspx
http://www.vbstreets.ru/VB/Articles/65507.aspx


Спасибо, но .. я читал уже.. мало токлу к сожалению, а если честно то почти нет (уменьшилось ну на 500 кб максимум). но всеравно, - спасибо
[Kostuch]

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Как уменьшить размер проги в оперативе

Сообщение codemaster » 20.07.2004 (Вт) 14:23

Kostuch писал(а):Собственно сабж, а то моя маленькая прога занимает аж 10 метров оперативы хотя занимает 286 килобай.

Напиши вкратце
чем занимается прога и ее архитектура (что пользуется)

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Re: Как уменьшить размер проги в оперативе

Сообщение Kostuch » 20.07.2004 (Вт) 14:32

codemaster писал(а):
Kostuch писал(а):Собственно сабж, а то моя маленькая прога занимает аж 10 метров оперативы хотя занимает 286 килобай.

Напиши вкратце
чем занимается прога и ее архитектура (что пользуется)

да , это маловажно честно говоря, в ВБ, распределение памятю страдает очень и очень...
вкратце - у проги есть 3 гл. функции :
1 - в реальном времени (насколько это позволяет ВБ) перемещает файлы с сетевого диска(на который они поступают) на лок. диск при этом отбирая их по заданой маске и переименовывая копирует на лок. диск.
2 - проверяет раз в 30(или можно поменять до 1 мин. минимум) дату создания файла опять же по маске и опять же с сетевого диска, если в течении заданного времени она одна и та же то орот что ошибка :)
3 - ведет лог поступаемых на сетевой диск файлов, проверяет весь диск раз в 2 минуты на файлы по заданой маске.
Это основные его задачи вкратце...
Примечание:
Сетка не тормозная, Novell, server на базе Оракл. что то еще надо ?
[Kostuch]

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Как уменьшить размер проги в оперативе

Сообщение codemaster » 20.07.2004 (Вт) 14:42

Kostuch писал(а):да , это маловажно честно говоря, в ВБ, распределение памятю страдает очень и очень...
вкратце - у проги есть 3 гл. функции :
1 - в реальном времени (насколько это позволяет ВБ) перемещает файлы с сетевого диска(на который они поступают) на лок. диск при этом отбирая их по заданой маске и переименовывая копирует на лок. диск.
2 - проверяет раз в 30(или можно поменять до 1 мин. минимум) дату создания файла опять же по маске и опять же с сетевого диска, если в течении заданного времени она одна и та же то орот что ошибка :)
3 - ведет лог поступаемых на сетевой диск файлов, проверяет весь диск раз в 2 минуты на файлы по заданой маске.
Это основные его задачи вкратце...
Примечание:
Сетка не тормозная, Novell, server на базе Оракл. что то еще надо ?


Честно говоря очень странно что съедается столько памяти
Скорее всего ты не осовобождаеш ресурсы
Ксати косвенно на это может указывать следущий факт:
чем дольше прога работает тем больше занимает памяти.

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Re: Как уменьшить размер проги в оперативе

Сообщение Kostuch » 20.07.2004 (Вт) 14:49

нет. чем дольше работает теб больше не занимает, самое гланое все равно что я свернул форму в трей что нет, размер в оперативе - однаков. а как выгружать что можно и как ?
[Kostuch]

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Re: Как уменьшить размер проги в оперативе

Сообщение codemaster » 20.07.2004 (Вт) 14:53

Kostuch писал(а):нет. чем дольше работает теб больше не занимает, самое гланое все равно что я свернул форму в трей что нет, размер в оперативе - однаков. а как выгружать что можно и как ?



те старт проги и сразу эдакий размер?

P.S. Курсор Серверный или Клиентский ?

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 20.07.2004 (Вт) 15:01

да сразу загружаю и размер такой, а если и увелививается то на килобайты, ну на 100 макс. , клиентский..
[Kostuch]

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 20.07.2004 (Вт) 15:16

Kostuch писал(а): клиентский..


Если размер БД приличный
то запросто можно скушать столько памяти
Опиши как ты работаеш в программе с
ADO Connection и ADO.RS( или кусок кода )


P.S. Просмотр БД в программе требуется?

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 20.07.2004 (Вт) 16:10

никак ..я же говорю я работаю с сетевым диском. я СУБД вообще не юзаю... просто на диске M: появляются файлы и я их юзаю простыми командами типа Dir а так же Open for ...
[Kostuch]

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 20.07.2004 (Вт) 16:29

Kostuch писал(а):никак ..я же говорю я работаю с сетевым диском. я СУБД вообще не юзаю... просто на диске M: появляются файлы и я их юзаю простыми командами типа Dir а так же Open for ...


странно но несколько выше было

Kostuch писал(а):3 - ведет лог поступаемых на сетевой диск файлов, проверяет весь диск раз в 2 минуты на файлы по заданой маске.
Это основные его задачи вкратце...
Примечание:
Сетка не тормозная, Novell, server на базе Оракл. что то еще надо ?


те как я понял лог пишется в Оракл?

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 20.07.2004 (Вт) 18:36

Нет, лог в оракл не пишется, это оракл с БД делает файлы .. а я их сортирую и раскидываю по регионам, точнее рассылаю. я в банке работаю..
[Kostuch]

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 21.07.2004 (Ср) 7:18

Может выставишь на обозрение свой код?
Легче было бы загадку разгадать. :)

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 21.07.2004 (Ср) 8:19

Конечно могу - без проблем.. но дело не нем а в то мчто ВБ, все же не умеет памятью управлять нормально .. Вот архивчик
Вложения
bank.zip
моя прожка
(104.83 Кб) Скачиваний: 29
[Kostuch]

baha76
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 07.01.2004 (Ср) 10:59
Откуда: Ташкент

Сообщение baha76 » 21.07.2004 (Ср) 8:50

Разве так объявляют переменные? Где Option Explicit?
Код: Выделить всё
Public pth, pth_n, pth_t, tim_a, dat_p, d_1, d1_1, d, d1, cur_dat As String
Public z, z1, len_a, len_b, bar_1, bar_2, arc, ctr, l, editable, Loaded As Integer

Все переменные кроме cur_dat и Loaded имеют тип данных Variant.
Вот отсюда и большой расход памяти! Еще говоришь, что читал статьи!

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 21.07.2004 (Ср) 9:16

Да, что-то многовато. У меня на VB супер-прога (:D) по работе с БД, файлами и почтой одновременно плюс много графических элементов, (gif-фимашки и т.п.), музыка (ну чтобы нескучно было с ней работать работать) примерно столько и ест.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 21.07.2004 (Ср) 11:28

Kostuch писал(а):Конечно могу - без проблем.. но дело не нем а в то мчто ВБ, все же не умеет памятью управлять нормально .. Вот архивчик


Вообщем неплохо!

только прогр. на VB это всегда компромисс между
"простотой" кодирования ,временем потраченным на кодирование и расходом памяти , быстродействием и пр.

Часто простота бывает обманчивой и выливается в
разочарование от VB!

Примерно таже ситуация в C++ <-> MFC
:wink: :wink: :wink: :wink: :wink:

Итак немного критики:

У тебя очень много пользуются ActiveX
Например "красивости" XPButton можно достичь другими путями
см.пример на http://www.vbaccelerator.com


SSTab - этот "отстой" лучше не пользовать
(добавлен в VB для пионеров и домохозяеек )

Проверку на запуск копии проще реализовать
чезер Mutex

FlexGrid поменять на ListView

Думаю после этого сразу прибудет "счастье" в уменьшении размера
в памяти

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 21.07.2004 (Ср) 14:16

Ок спасибо !
[Kostuch]

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 21.07.2004 (Ср) 15:15

baha76
Ничего не дало что я сделал Option Explicit, даже пол метра не освободило оперативы...
codemaster
То что на Вб нет смысла продолжать писать я понял.. но какая альтернатива ему, если как вы говорите Сишник там же...?
[Kostuch]

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 21.07.2004 (Ср) 15:35

Kostuch писал(а):baha76
Ничего не дало что я сделал Option Explicit, даже пол метра не освободило оперативы...
codemaster
То что на Вб нет смысла продолжать писать я понял.. но какая альтернатива ему, если как вы говорите Сишник там же...?


тебеже ткнули пальцем

baha76 писал(а):
Код: Выделить всё
Public pth, pth_n, pth_t, tim_a, dat_p, d_1, d1_1, d, d1, cur_dat As String
Public z, z1, len_a, len_b, bar_1, bar_2, arc, ctr, l, editable, Loaded As Integer


так переменные в басике не объявляются... они у тебя все получились Variant, кроме самых последних

и не надо перекладывать вину на VB...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 21.07.2004 (Ср) 15:36

Kostuch писал(а):То что на Вб нет смысла продолжать писать я понял.. но какая альтернатива ему, если как вы говорите Сишник там же...?


Очень неправильный вывод !
VB один из самых простых и быстрых (качественных) RAD языков !

Например на бирже во Francfurte работает очень много больших
приклад написанных на VB6

Попробуй оптимизировать свое приложение ( см. выше. Для начала выкинь XPButton )

Для оптимизации (поисков утечки памяти) есть интрументы от NuMega.

С++ и MFC это отдельная история
Последний раз редактировалось codemaster 21.07.2004 (Ср) 15:45, всего редактировалось 1 раз.

Kostuch
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 19.07.2004 (Пн) 16:17
Откуда: Kiev, Ukraine

Сообщение Kostuch » 21.07.2004 (Ср) 15:41

Cyrax - хорошо а ка надо тогда так что ли
Public pth as String
Public pth_n as String
..... ?
[Kostuch]

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 21.07.2004 (Ср) 15:54

Kostuch писал(а):Cyrax - хорошо а ка надо тогда так что ли
Public pth as String
Public pth_n as String
..... ?
совершенно верно, нужно указывать тип каждой объявляемой переменно (а то они по дефолту Variant будут)

либо в одну строку
Код: Выделить всё
Dim i as long, s as string
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 29

    TopList  
cron