Вопрос по быстродействию

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Вопрос по быстродействию

Сообщение Ruslan Demidow » 04.12.2004 (Сб) 18:12

Накопал тут в инете профайлер.
"Натравил" его на мой проект.
Во многих процедурах мне приходится из нескольких строк составлять одну. В эти составные строки приходится включать символы пробела, кавычки и т.п.
Для указания символов использую CHR$(SymbolCode).
Профайлер советует для ускорения использовать CHRW$(SymbolCode) (я так понял что эта функция как то относится к unicod'у).
Стоит ли прислушаться к профайлеру? Или разница будет не заметна?
Везде ли (во всех ли системах/ОС) пройдёт использование CHRW$() вместо CHR$()?
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 04.12.2004 (Сб) 19:49

Хм. Знаешь, очень может быть. Но тогда тебе придется перелопатить весь проект, т.к. для отображения, скажем, русской буквы "П" одни и те же константы не подойдут:
Код: Выделить всё
debug.print chr(207)
debug.print chrW(1055)

Разницу заметил?..

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 05.12.2004 (Вс) 11:01

Ennor писал(а):Хм. Знаешь, очень может быть. Но тогда тебе придется перелопатить весь проект, т.к. для отображения, скажем, русской буквы "П" одни и те же константы не подойдут:
Код: Выделить всё
debug.print chr(207)
debug.print chrW(1055)

Разницу заметил?..
Заметил. :(
Нет, мне это не подойдёт.
Думаю это не сильно скажется на быстродействии моей програмы (не так критично).
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.12.2004 (Вс) 16:49

Ruslan Demidow писал(а):...
Думаю это не сильно скажется на быстродействии моей програмы (не так критично).

Да уж, не такие функции оптимизировать надо :) . Вот алгоритмы - это да, это в первую очередь, но если профайлер тебе ничего про них не сказал, значит, ты постиг Дао программирования - поздравляю :) .

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 05.12.2004 (Вс) 18:20

Он ругается только на использование iif вместо if ... else ... end if :)
А про алгоритмы и процедуры (в смысле ускорения) он ни словом. Только вот много мёртвых переменных нашёл. Но это дело поправимое.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 06.12.2004 (Пн) 12:13

Iif - это да, очень медленная штука, ибо работает с вариантами в чистом виде. Но реально опасаться ее стоит, когда она у тебя внутри цикла оказывается. Впрочем, то же самое можно сказать и о любой работе с произвольными типами в циклах...

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 06.12.2004 (Пн) 15:41

Ennor писал(а):Iif - это да, очень медленная штука, ибо работает с вариантами в чистом виде. Но реально опасаться ее стоит, когда она у тебя внутри цикла оказывается. Впрочем, то же самое можно сказать и о любой работе с произвольными типами в циклах...
Что, сильно медленная?
Тогда буду переделывать на стандартный If ... elseif ... end if
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 06.12.2004 (Пн) 15:58

Ennor писал(а):Да уж, не такие функции оптимизировать надо

А что? Я, помнится, писал прогу "Algebrator" для работы с диннной арифметикой. Так вот там замена Val(S) на Asc(S)-Asc(0) повысила быстродействие в 3.7 :!: раза. :lol: Правда, алгоритмы там были настолько кривые (писал я это действительно давно), что их оптимизация, наверное, дала бы выигрыш раз в десять... :oops:
Листинги не горят!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 24

    TopList  
cron