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

спасибо
...
Рейтинг: 0 / 0
14.04.2003, 12:54
    #32139819
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
И машины одинаковые (по железу) и сервис-паки одинаковы и счетчик используешь толковый (типа,TimeGetTime из winmm.dll) ? если "Да" на все, тогда не знаю - шлю код и резульаты теста. Проверим на себе.
...
Рейтинг: 0 / 0
14.04.2003, 13:11
    #32139845
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
Пардон, нужно читать: "Шли код и результаты теста"
...
Рейтинг: 0 / 0
14.04.2003, 13:18
    #32139854
Lexis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
кусок кода, в котором проблема
Код: 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
14.04.2003, 17:57
    #32140266
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
Скорее всего из-за памяти. \r
Я тут как то отвечал в топик по несколько сходной с твоей проблемой (/topic/26859). \r
\r
Попробуй использовать Mid$ (если честно не знаю как) Но:\r
На маленьких строках работает быстрее в 5 раз, на больших (размером в str = Space(10 000 000) сжирает около 19 мегов памяти) - раз в 100.\r
Вот исходя из этих 19 мегов можно сделать вывод о активной работе оперативки (жесткий диск даже не дернулся) и следовательно об узком месте.\r
Хотя в такой простой строке как Replace, наврядли можно что-то улучшить. Если только отыскать что-то вроде API функции по работе со строками.
...
Рейтинг: 0 / 0
15.04.2003, 13:20
    #32140930
Lexis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
много ресурсов потребляло ReadAll
вот решение проблемы:
статья
...
Рейтинг: 0 / 0
15.04.2003, 13:33
    #32140963
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
Не плохо с 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
15.04.2003, 14:01
    #32141028
Lexis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6 replace function, speed
могу только на глазок прикинуть
где то раз в 35-40 данный кусочек кода стал быстрее работать
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6 replace function, speed / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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