powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6 replace function, speed
8 сообщений из 8, страница 1 из 1
VB6 replace function, speed
    #32138781
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
функция Replace в программе на одной машине работает примерно в 15 раз медленее чем на другой, может какие DLL обновить на одной из машин?

спасибо
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32139819
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И машины одинаковые (по железу) и сервис-паки одинаковы и счетчик используешь толковый (типа,TimeGetTime из winmm.dll) ? если "Да" на все, тогда не знаю - шлю код и резульаты теста. Проверим на себе.
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32139845
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, нужно читать: "Шли код и результаты теста"
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32139854
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кусок кода, в котором проблема
Код: plaintext
1.
2.
3.
4.
 strFile = oFSfile.ReadAll
 strFile = Replace(strFile, Chr( 9 ),  "")
 strFile = Replace(strFile, Chr(10 ), " ")
 strFile = Replace(strFile, Chr(13 ), "")

ощутимая разница чувствуется, когда размер файла превышает мегабайт
машины примерно одинаковые, только на той, которая обрабатывает медленее памяти в два раза больше
strFile = Replace(strFile, Chr(9), "") - на моей машине примерно 2-4 секунды
на другой - 30-40
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32140266
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего из-за памяти. \r
Я тут как то отвечал в топик по несколько сходной с твоей проблемой (/topic/26859). \r
\r
Попробуй использовать Mid$ (если честно не знаю как) Но:\r
На маленьких строках работает быстрее в 5 раз, на больших (размером в str = Space(10 000 000) сжирает около 19 мегов памяти) - раз в 100.\r
Вот исходя из этих 19 мегов можно сделать вывод о активной работе оперативки (жесткий диск даже не дернулся) и следовательно об узком месте.\r
Хотя в такой простой строке как Replace, наврядли можно что-то улучшить. Если только отыскать что-то вроде API функции по работе со строками.
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32140930
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
много ресурсов потребляло ReadAll
вот решение проблемы:
статья
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32140963
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не плохо с 176 секунд с оптимизировать до 0,28
Сайт в Избранное,
Lexis'у - фанкс за науку.
Редко встречается сам задал и сам ответил, да еще так праильно.

2 Lexis
За сколько теперь на твоем клиенте выполняется код?


А делов то:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
const ForReading =  1 
dim strSearchThis
dim objFS
dim objTS
set objFS = Server.CreateObject( "Scripting.FileSystemObject" )
set objTS = objFS.OpenTextFile(Server.MapPath( "myfile.txt" ), _
                               ForReading)

strSearchThis = objTS.ReadAll
if instr(strSearchThis,  "keyword" ) >  0  then
    Response.Write  "Found it!" 
end if
...
Рейтинг: 0 / 0
VB6 replace function, speed
    #32141028
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу только на глазок прикинуть
где то раз в 35-40 данный кусочек кода стал быстрее работать
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6 replace function, speed
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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