Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Вопрос: Разгоняем CHR : Почти в 2 раза!
Добавлено: 08.05.05 22:08
Автор вопроса: Morpheus | Web-сайт:
Ответы
Всего ответов: 125
Номер ответа: 46
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #46
Добавлено: 11.05.05 01:09
У меня работает одинаково. Хоть тресни - одинаково.
У CyRax'а то в одну то в другую сторону больше, в зависимости от того, где записан код, причём на небольшую величину, что может объясняться флуктуациями измерения, и по большому счёту это тоже одинаково.
Я вижу два практически одинаковых результата (мой и CyRax'а), и поэтому твоим словам я не склонен верить.
И процессор тут не при чем. У меня тоже AMD.
Поэтому, пока не сдампишь память и не представишь листинг, утверждение, что в IDE работает с i медленней - это всего лишь твои досужие домыслы, не подтверждаемые ни практикой, ни разбором дампа памяти.
Если по-прежнему утверждаешь, что медленней - обоснуй достоверными и объективными фактами.
А пока они работают одинаково, в соответствие со здравым смыслом и результатами моих замеров.
Номер ответа: 47
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #47
Добавлено: 11.05.05 01:33
Млин! Теперь у меня результат скачет ((((
Номер ответа: 48
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #48
Добавлено: 11.05.05 02:00
2 sne:
Даа, в ВБ правду фиг найдешь...
Не а вот интерестно всё таки, по моему счётчик цикла можно только в ВБ указывать, вот например, я в паскале (а значит и в делфях) пишу:
for i:=1 to 100 do begin
<do something>;
end;
никаких указаний в конце.
В PHP (а значит наверное и в Си) пишу:
for($i=1;$i<=100;$i++)
{
}
тоже никаких указаний
Один васик - самый строгий, пунктуальный и типизированный язык
Номер ответа: 49
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #49
Добавлено: 11.05.05 09:12
Morpheus тут дело наверное не в типизированности, счётчик цикла указывается везде: и в Паскале и в Си и в VB. Наличие i после Next необязательно, это лишь вопрос стиля, позволяющий иметь более наглядный и читабельный код. Указано или нет - процессор будет выполнять один и тот же набор инструкций.
Номер ответа: 50
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #50
Добавлено: 11.05.05 10:14
Да, ChrW$ тоже не помогает... Ну, дык, функция все же. Думается, если залепить не элемент массива, а 256 переменных типа long - будет еще быстрее. Только вот в runtime проблемы с ними будут.
Номер ответа: 51
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #51
Добавлено: 11.05.05 10:37
Кстати, подумалось - а ежели Next без счетчика использует любимый бейсиковский Variant? Тогда многое объясняется. Явно же указать можно тип Long - самый быстрый тип переменной.
Номер ответа: 52
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #52
Добавлено: 11.05.05 13:36
Да, похоже дамп памяти - это была не лучшая идея. Никакого кода там нет. Одни адреса, которые прослеживать я обламался где то на 3-м.
Номер ответа: 53
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #53
Добавлено: 11.05.05 13:52
Задача ещё усложняется тем что код создаётся динамически и перед запуском его не существует (я проверял адреса до и после запуска). Короче, если мне заплатят, я могу исследовать VB6 IDE, а так - это слишком нудная работа.
Номер ответа: 54
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #54
Добавлено: 11.05.05 15:17
Да, и ещё, закачал себе на работе специально для исследования OllyDbg 1.10, но у него почему то куча недоступна (в смысле пункт "Heap" меню "View". Хотя на сайте написано что это финальный релиз. У кого нибудь есть ещё эта версия? У меня Win2K SP2.
Номер ответа: 55
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #55
Добавлено: 11.05.05 21:32
[OFF-TOP]
) Не, я балдею.
На этот раз sne схватился с HOOLIGAN'ом (Ну или HOOLIGAN со sne - чтоб никому обидно не было .
Блин, со стороны это действительно весело! Такие словесные баталии..
Спасибо: CyRax, sne (а теперь и HOOLIGAN), вы делаете чтение форума намного более интересным.
[/OFF-TOP]
Номер ответа: 56
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #56
Добавлено: 11.05.05 23:16
ну блин, а я не знал значит неверно руководствоваться при выборе типа переменной её предпологаемым диапазоном значений? то есть, нет смысла писать Byte или Integer (памяти то должно хватить наверное на все ?
2 ISpy:
Да, ты прав на все сто. есть же люди весёлые ... Ну и злые духи тоже обитают. Они вместе с привидениями летают по форуму и творят всякое безобразие, например могут рядом с ником черепок подрисовать, а бывает смотришь - а поля текстового, куда я сейчас печатаю и нету )))
Лады, не сердитесь, шуточка была
3CyRax :
По-моему ты далеко куда-то забрался )))))
Номер ответа: 57
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #57
Добавлено: 12.05.05 00:13
Morpheus, da Long samyj bystryj t.k. on DWORD-aligned v pamyati kompa.....nu a vashe, espol`zovat` Byte i Integer est` smysl...osobenno esli s binary file'ami rabotaesh...ved` ono men`she mesta zanimat` budet esli ty chislo s maksimal`nym znachiniem 255 zapihnesh` v odin bajt a ne v 4...nadeyus` ponyatno :D
Номер ответа: 58
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #58
Добавлено: 12.05.05 11:19
ну блин, а я не знал значит неверно руководствоваться при выборе типа переменной её предпологаемым диапазоном значений? то есть, нет смысла писать Byte или Integer (памяти то должно хватить наверное на все ?
Это не так смешно как кажется. Для хранения всякого мусора, особенно в больших количествах, естественно лучше использовать наиболее подходящий тип. А в качестве счетчика цикла лично я всегда юзаю long. Разница, впрочем, невелика, так что это дело вкуса. Замечу, однако, что все АПИ функции тоже юзают long независимо от диапазона значений.
Ну а в плане скорости - даже ламеры знают что система шустрее всего работает с числами одной с ней разрядности. В больших пустых циклах даст выигрыш в несколько секунд
Номер ответа: 59
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #59
Добавлено: 12.05.05 12:47
До кода я вчера таки добрался. Но его там столько, что разбирать желание отпадает. Сделал сначала стандартный (в моём случае) снимок в 1024 байта, затем 4 кБ, затем 64 и 128 кБ, а код всё не кончается и не кончается. Кстати, процедура в VB6 IDE очень похожа на PB-шную. Помню sne не понравилось что PB на автомате выделяет &H60 байт на локальные переменные, так здесь их выделяется аж &H78. Сама процедура здоровенная, RET идёт аж после 2,5 тыс. инструкций. Многовато для пустого цикла, тем более что эта процедура вызывает ещё и другие, не менее объёмные.
Номер ответа: 60
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #60
Добавлено: 12.05.05 12:51
Ах да, конечно же там код не только пустого цикла, а и дампа памяти и скидывания этого дампа на диск.