Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Тормоза приложения Добавлено: 09.02.05 21:20  

Автор вопроса:  Andrey999 | Web-сайт: www.radio-device.narod.ru | ICQ: 30852361 
Народ возникла такая проблема. Написал программу себе на работу для облегчения труда (базы данных), вродебы все нормально работает не без глюков конечно и вот когда начал плотно работать с программой то-есть весь день начал замечать, что она в процессе работы начинает тормозить и чем дольше в ней работаешь тем больше она тормозит, компьютер довольно мощьный но когда я сел за старенький Р-2... это был просто кошмар через час два работы она не стала даже код выполнять правильно вносила в базу данные куда попало да еще и неверные (там генерится случайный код нового изделия на основе генератора RND) так он и туда умудряется пургу загнать (код типа 0000002) может встречатся много раз на совершенно разные наименования.
Может кто подскажет как оптимизовать код, как правитьно выгружать формы из памяти и т.п. Буду очень благодарен за любую помощь.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 rx



ICQ: 310731115 

Вопросов: 10
Ответов: 45
 Web-сайт: erix.times.lv
 Профиль | | #1
Добавлено: 09.02.05 22:29
Формы вигружают так:
Unload [Имя форми]

Обекти перемнних удаляут так:
Set [переменная] = nothing

Труднo скaзать в чом причина в конкретном случае, код может бить немного облехчил ету задачу

Ответить

Номер ответа: 2
Автор ответа:
 Keen



ICQ: 284-467-526 

Вопросов: 12
Ответов: 25
 Профиль | | #2 Добавлено: 09.02.05 22:39
Насчет RND: Естественно, числа будут повторяться. Rnd генерирует случайные числа, они будут повторяться и не один раз.

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 09.02.05 22:45
Создай массив и в нем храни, какие случайные числа уже выбирались

Ответить

Номер ответа: 4
Автор ответа:
 Andrey999



ICQ: 30852361 

Вопросов: 73
Ответов: 168
 Web-сайт: www.radio-device.narod.ru
 Профиль | | #4
Добавлено: 09.02.05 23:02
Нет, дело в том, что код генерится не просто как случайное число, а он состоит из нескольких параметров таких например как наименование переобразуется в число и общий код где то 25 цифр.

Ответить

Номер ответа: 5
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #5 Добавлено: 09.02.05 23:32
Если базы данных, закрывай каждый рекордсет, каждое соединение. Старайся не плодить рекордсеты инструкциями типа Dim Rs As New ADODB.Recordet. Никакой Unload или End не поможет, по-прежнему данные будут висеть в памяти. Лучше уж посадить на форму какой-нибудь ADODC, он при выгрузке формы сам закроет рекордсет.

А случайные числа обязятельно надо проверять на наличие, т.к. они повторяются раз за разом через некоторое количество генераций. Если существует - просто XOR допустим с GetTickCount

Ответить

Номер ответа: 6
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #6 Добавлено: 10.02.05 07:24
А команда set rs=nothing - очищает память?
И вообще, дополню немного вопрос. Во время отладки иногда выходишь из программы не нажимая "ВЫХОД", где вся память очищается, а просым нажатием на "стоп". После определенного количества таких выходов, ВБ может в любой момент вылетить во всякие Unexpected ошибки, Аут оф мемори и прочие радости. При этом несколько раз валились контролы на формах, иной раз - просто пропадали...
Цитирую Cresta:
Никакой Unload или End не поможет, по-прежнему данные будут висеть в памяти.
Конец цитаты.
Как эти данные из памяти выкинуть? Или никак?

Ответить

Номер ответа: 7
Автор ответа:
 rx



ICQ: 310731115 

Вопросов: 10
Ответов: 45
 Web-сайт: erix.times.lv
 Профиль | | #7
Добавлено: 10.02.05 11:34
Set Rs = Nothing '- поможет, просто должен помоч;
Dim Rs As New ADODB.Recordet '- ето обектная переменная;

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам