powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Быстродействие кода
11 сообщений из 11, страница 1 из 1
Быстродействие кода
    #39773342
JamesMilner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день! Подскажите , пожалуйста, дельные советы по оптимизации кода, простой текстовый файл на 9 строчек обрабатывается больше 20 секунд. Читал, что многое кроется в неграмотно составленных циклах, но остро нуждаюсь в реально эффективных решениях! Заранее спасибо за отклики

Код построчно считывает текстовый файл и удаляет ненужные строки при помощи сравнения:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Private Sub Command5_Click()
Dim F As Long
Dim Fn As String
Dim MyText As String
Dim a(1 To 3) As String
Dim i As Integer

Text1.Text = vbNullString
F = FreeFile
Fn = "E:\test.txt"

a(1) = "*id=""3""*"
a(2) = "*id=""5""*"
a(3) = "*id=""7""*"

Open Fn For Input As #F
Do Until EOF(F)


n: Line Input #F, MyText
   For i = 1 To 3
     If Not MyText Like a(i) Then
    GoTo m:
    Else
    GoTo n:
    End If

m: Next i
Text1.Text = Text1.Text & MyText &  vbNewLine
Debug.Print Text1.Text

Loop
Close #F

Open Fn For Output As #F
Print #F, Text1.Text
Close #F

End Sub




Текстовый файл выглядит так:
1
2
3id="3"
4
id="5"5
6
7 id="7"
8
9
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773352
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JamesMilnerобрабатывается больше 20 секундУ меня этот код выполняется мгновенно, да и нечему тут вроде тормозить.
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773354
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего, есть дополнительные факторы. Возьми чистый проект, засунь туда ТОЛЬКО этот код и запусти, скорее всего тормозов не будет, и дальше будет повод искать в другом месте
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773385
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Считать весь файл в переменную, и затем поделить на строки - быстрее, чем считывать построчно
2) INSTR(переменная, 'шаблон') быстрее, чем LIKE переменная, '*шаблон*'
3) Goto за пределы цикла - это могуче...
JamesMilnerсоветы по оптимизации кодаВсё стереть и начать по новой.
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773406
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773414
JamesMilner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, пробовал, разницы в быстродействии нет
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773423
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм. Ну чудес не бывает, тут даже на файловую систему вроде не спишешь, ибо "E:\test.txt", я надеюсь, путь на локальном диске.

Ну попробуй тупо с помощью точек останова определить конкретное место, где тормозит, например при открытии файла или при записи.

... эээ может антивирус какой начинает файл проверять при перезаписи и тупит?
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773424
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По каким признакам вообще определяется, что код закончил работу?
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773436
JamesMilner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, проблема решилась тупым переносом дока с одного локального диска на другой. Но всё равно интересно было бы узнать причины такого странного поведения
...
Рейтинг: 0 / 0
Быстродействие кода
    #39773456
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже сказал выше - поставь точки останова, посмотри, что конкретно тупит
...
Рейтинг: 0 / 0
Быстродействие кода
    #39775067
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JamesMilnerShocker.Pro, проблема решилась тупым переносом дока с одного локального диска на другой. Но всё равно интересно было бы узнать причины такого странного поведениядиск умирает.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Быстродействие кода
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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