Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Вопрос: Разгоняем CHR : Почти в 2 раза!
Добавлено: 08.05.05 22:08
Автор вопроса: Morpheus | Web-сайт:
Ответы
Всего ответов: 125
Номер ответа: 31
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #31
Добавлено: 10.05.05 17:52
ОБА СПОСОБА ПОКАЗАЛИ ОДИНАКОВЫЙ РЕЗУЛЬТАТ 1,79 сек.
Я уже давно запускал и тестил оба способа. И знаешь, результат различный, ч.т.д.
1 - 1.65, 1.67
2. - 1.41, 1.40
Ты и теперь будешь отрицать? Может ты хотя бы в этот раз объяснишь, почему различный результат, не сбиваясь на оскорбления и доказательства своей кртутизны?
Знаешь приятель, ты не удосужился даже проверить свои слова. Это называется пустозвонство.
Какие ещё можешь придумать причины или условия для оправдания своей некомпетентности?
Жду следующих нападок
Слабак
После вышесказанного - это более чем глупо и наивно, прежде чем оскорблять 100% должен быть уверен в своей правоте, ты же уверен-лишь в себе, да и то на половину.
2CyRax, думаю эта слабость присуща скорее тебе, сколько раз уже было... Хотя со стороны видно куда лучше, но все-же в мнении хулигана у мня имеются некоторые сомнения.
Номер ответа: 32
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #32
Добавлено: 10.05.05 18:11
Конечно в его мнении у тебя имеются сомнения Ещё бы. А со стороны это похоже на то что ты залил свои глаза свинцом и на все попытки продрать их из вне просто подливаешь ещё свинца.
думаю эта слабость присуща скорее тебе
Да нет же, открой глаза наконец и обрати на это внимание. Это твоя слабость.
Номер ответа: 33
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #33
Добавлено: 10.05.05 18:19
Результат одинаков. Понимаешь, не только у тебя есть IDE, другие тоже могут набрать этот код и посмотреть
Сделай, как предложил CyRax: получи AddressOf процедуры с циклом, скопируй её куда-нибудь в массив байт и посмотри этот массивчик два раза: один раз для процедуры с указанием переменной, другой раз без указания
Оскорблять тебя мне нет необходимости, это ты предложил такой стиль общения, с фразами типа "помолчи если не знаешь", "смотри обожжешься" и т.д. Я только принял твой стиль общения, так что нечего теперь плакаться. Если ты не против этого, мне тоже не составит труда помочь тебе выставиться в неприглядном свете, разве я против
Номер ответа: 34
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #34
Добавлено: 10.05.05 18:22
Вот это прикол Решил и я протестить код, который написал HOOLIGAN и получил результаты:
Next Счётчик
Тест1 - 4.36 сек
Тест2 - 4.23 сек
Next (без счётчика)
Тест1 - 5,46
Тест2 - 5.62
Т.е. как видите код без счётчика работает медленней аж на секунду.
Но и это ещё не всё. Поменял я код местами в cmd1 и cmd2 и что вы думаете? Ага, теперь без счётчика на секунду быстрее. Короче нормального теста не получится, необходим дамп кода из памяти.
Номер ответа: 35
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #35
Добавлено: 10.05.05 18:27
Получается что скорость кода зависит от того из какой процедуры он вызывается (cmd1_Click или cmd2_Click). Причём не важно какую кнопку ты нажмёшь первой, всё равно код в cmd1_Click быстрее.
Добавлю ещё что проект не сохранён на винте (и форма тоже). Это авторан, который создаёт VB при запуске
Номер ответа: 36
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #36
Добавлено: 10.05.05 18:36
Мдааа.... с этим VB блин не соскучишься. может как предлагалось просомотреть асм код для обоих циклов?? как по мне так они одинаковыми должны быть и от указания счётчика (или неуказания) может зависеть разве что скорость компиляции программы. ну сами подумайте: разве может цикл быть без счётчика??? Vb всё равно его добавит
Номер ответа: 37
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #37
Добавлено: 10.05.05 19:04
Morpheus
Ты заметил самое основное:разве может цикл быть без счётчика??? Конечно нет. Пишешь ты эту переменную или нет - компилятор её вставит обязательно. И приведёт код к виду, как в случае если она указана. И получается одинаковый код, указал ты переменную или нет. И одинаковый код должен выполняться одинаково
Номер ответа: 38
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #38
Добавлено: 10.05.05 19:50
Переписал код:
Dim i As Long, t As Single, t1 As Single
t = Timer
For i = 0 To 100000000
Next i
t1 = Timer
For i = 0 To 100000000
Next
t = Timer - t
t1 = Timer - t1
MsgBox t & " " & t1
End Sub
Вне зависимости от того какой цикл стоял первым такие результаты:
с указанием счетчика: 2,67
без указания счетчика: 1,28
Теперь раз у всех различные результаты, скинемся и приведем свою конфигурацию компа... Может Next без счетчика для поклонников AMD, а со счетчиками - Intel ?
У мня FSB 333, AMD 2600+, EPOX 8K3AP...
Номер ответа: 39
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #39
Добавлено: 10.05.05 19:54
ЗЫ
Идея CyRax'a мало того что невыполнима, она просто невыполнима )
Вспомним что в функции можно прямо во время отладки изменять код, т.е. интерпретирование кода идет некоторыми блоками а не сразу полностью.
Пока-что я только вижу оскорбления, причем я стараюсь не отвечать на подобные выпады.
Номер ответа: 40
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #40
Добавлено: 10.05.05 20:18
Какой компилятор!? Мы сейчас говорим о том насколько быстро код выполняется в IDE. Ведь для парсера счетчик это лишняя работа, это "аргумент".
Номер ответа: 41
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #41
Добавлено: 10.05.05 21:51
Представим, что некий парсер осуществляет выполнение цикла.
Парсер на что опирается, когда принимает решение, закончен цикл или нет ? Подумал об этом? Подумай.
Даже напишешь Next - в любом случае счетчик уже есть. Ещё до того, как появился Next уже было оговорено участие в цикле переменной i: For i=. Напишешь Next i или просто Next - переменная i уже существует, независимо от твоего желания. Никакой экономии для парсера нет.
Этот аргумент не может быть лишним, т.к. без него конструкция For i превращается в ничто.
Неужели такие простые и прозрачные вещи недоступны твоему пониманию?
Ай-яй-яй... Стыдно должно быть
Номер ответа: 42
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #42
Добавлено: 10.05.05 22:50
А всё таки интерестно, почему в IDE результаты такие разные, а в компилированном виде очень похожи
Номер ответа: 43
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #43
Добавлено: 10.05.05 22:50
Оператор называется FOR, а не FOR i. В правильно построенной программе вместо i ты не можешь написать ничего другого, таким образом, i - это лишний аргумент, который еще надо проверять, и если он неправильный, показать еррор.
Номер ответа: 44
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #44
Добавлено: 10.05.05 23:11
Sharp
Никто не называет FOR i оператором. Читай внимательно. Слово оператор вообще не упоминалось Что за измышлизмы такие???
По поводу i: Тебе должно быть известно, что i в коде не содержится. Есть регистр отведенный под счётчик (либо ячейка памяти). i - всего лишь условное понятие. Поэтому если мы уйдём от пугания заумными фразами, то обнаружим, что есть выделенный специально для подсчёта количества прохождений регистр. И без этого никуда. Нравится или нет. Независимо от того, пишем Next i или Next (оставляя на vb дописать недописанное)
Номер ответа: 45
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #45
Добавлено: 11.05.05 00:32
И тем-ни менее, работает в IDE код со счетчиком медленней, имхо, потой причине что каждый раз при проходе цикла, считывается оператор а счетчик считается за параметр!