Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Загруженность процессора -> проблема Добавлено: 31.12.05 15:45  

Автор вопроса:  Elkatib
Написал прогу, которая просулшивает определённый порт...вот код:
Private Sub Form_Load()
Do
    If winsock.State <> sckConnected And winsock.State <> sckListening Then
        winsock.Close
        winsock.Listen
    End If
    DoEvents
Loop
End Sub

Жрёт почти 4 Мб оперативки и 100 % использует процессор. Как сделать, что бы эти цифры были меньше?
Кроме, стандартной библиотеки MSVBVM60.DLL используется ещё как Вы догажались: MSWINSCK.OCX

Ответить

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

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



Вопросов: 0
Ответов: 1066
 Профиль | | #1 Добавлено: 31.12.05 15:52
Вставь Sleep в цикл

Ответить

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



Вопросов: 18
Ответов: 25
 Профиль | | #2 Добавлено: 31.12.05 16:18
Но тогда ведь невозможно будет получать сообщения, если порт будет слушаться через определённое кол-во времени???

Ответить

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



Вопросов: 0
Ответов: 1066
 Профиль | | #3 Добавлено: 31.12.05 17:12
А кто заставляет паузу делать большую?
Sleep 0
Это просто позволит другим приложениям работать нормально. Процессор всё равно будет показывать 100 %, от этого никуда не уйдёшь, но тормозить не будет.

А на размер памяти (4 Мб) не обращай внимания, к тому же это тебе изменить не удастся.

Ответить

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



Вопросов: 18
Ответов: 25
 Профиль | | #4 Добавлено: 31.12.05 18:13
Чё-т не хочет всталять в цикл Sleep
Странно, то есть другого выхода никокого нет? Нельзя как-нить подругому слушать порт и занимать мало ресурсов?

Ответить

Номер ответа: 5
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #5 Добавлено: 31.12.05 19:14
2 Elkatib:
Эх, троянописец.. :) С Новым Годом!

Private Sub Form_Load()
Sleep 0
Do
If ws.State <> sckConnected And ws.State <> sckListening Then
ws.Close
ws.Listen
End If
DoEvents
Loop
End Sub


можно для ускорения производительности
запрячь это в функцию Private Function Conn() и в таймере, с interval=1000 вызывать: Call Conn().. быстрая производительность гарантируется, тк в Form_Load вызывается функция Loop.. что есть повторяться каждую милисекунду.
Вот код:

Timer1 (interval=1000):
Call Conn()

Function Conn()
Sleep 0
If ws.State <> sckConnected And ws.State <> sckListening Then
ws.Close
ws.Listen
End If

Ответить

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



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 31.12.05 20:13
Охренительно...

Вызов listen надо сделать один раз.
А не в цикле.

Ответить

Номер ответа: 7
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #7 Добавлено: 31.12.05 20:30
Вызов listen надо сделать один раз.
А не в цикле


а.. ну да :)

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 31.12.05 20:54
я канєшно не в состоянии щас трезво воспринимать вопросі но вроде ж законектится нада и ловить данніе в Winsock1.DataArrival

Ответить

Номер ответа: 9
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #9 Добавлено: 31.12.05 22:02
Ты абсолютно прав :) но вопрос не по этой теме :)

Ответить

Номер ответа: 10
Автор ответа:
 Elkatib



Вопросов: 18
Ответов: 25
 Профиль | | #10 Добавлено: 01.01.06 00:49
Хаха :) нет UL я НЕ пишу троян, пишу прогу что-типа сетевого варианта АСИ :) но за троян я угораел жёстко.
Спасибо тебе огромное за код теперь прога забирает от силы 10%.

С Новым Годом тебя и всех остальнох тоже.
Спасибо большое Вам!

Но мне кажется эт не последний раз я тут постю. :)

Ответить

Номер ответа: 11
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #11 Добавлено: 01.01.06 06:31
Спасибо тебе огромное за код теперь прога забирает от силы 10%


приятно :) что помог тебе, я пошел проводить эксперемееент :) буду пъяным сайт свой дописывать :)) посмтрим.. что выйдет.. :)

Ответить

Номер ответа: 12
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #12 Добавлено: 01.01.06 06:34
пишу прогу что-типа сетевого варианта АСИ


так скачай ууу нас в samples пример локальной Аси, сейчас я нихрена не помню :) но помоему от sne там... уже написанная, изучи, а потом свою пиши. Во :)!

Ответить

Страница: 1 |

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



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