На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Имеется ли разница скорости между двумя сравнениями: , Visual Basic v.6.0.
    if bBool=true

    и

    if bBool

    ?
      Первое - плюс одна операция сравнения.
        Компилятору всё равно, для этих записей генерируется одинаковые инструкции.
          Значит, переменная bBool определена как boolean. Тогда оптимизатор правильно и вполне ожидаемо удалил избыточное сравнение.
            Вы не оставили мне выбора.

            При тесте на трех 16миллионном массивах без =true 6:58, 46, 47, с true - 7:19, 48, 48. Какого-то черта разница все-таки есть. Перепроверил 2 раза.

            Ок, ладно. В случае с Bool укороченная запись, ускоряющая код, найдена. Но есть ли похожие укороченные записи для других типов данных? Или укороченные записи самих сравнений. Вон, Xor неожиданно выстрелил по скорости...

            Добавлено
            Стоп.

            В VB6 нет такой записи как "!bTemp". Not bTemp... Опять тестить, надоело...

            Добавлено
            А вот тут фигня получилась NOT медленнее, чем = FALSE. 8:00, 1:18,49 - против 7:29, 1:11, 47.

            Добавлено
            Цитата Akina @

            Может, NOT инвертирует, а потом сравнивает с True; а =false - просто сравнивает с false?
              Цитата Сергей85 @
              NOT медленнее, чем = FALSE

              Вместо этого
              ExpandedWrap disabled
                If a = False Then do_something

              Или этого:
              ExpandedWrap disabled
                If Not a Then do_something

              Можно попробовать третий вариант:
              ExpandedWrap disabled
                If a Then Else do_something
                a = false: 7:38
                a Then Else: 7:24. Да, подходит. Если условие одно. А если несколько - не проверял.

                (добавлено) Этот результат может быть неверным. Проверял с дебаггером - а он, как оказалось, вносит погрешность ~2% в измерения. Здесь разница слишком маленькая, чтобы считать ее за истину. Перепроверять надо.
                Сообщение отредактировано: Сергей85 -
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script execution time: 0,0261 ]   [ 17 queries used ]   [ Generated: 19.04.24, 21:52 GMT ]