Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

 

  Вопрос: Разгоняем CHR : Почти в 2 раза! Добавлено: 08.05.05 22:08  

Автор вопроса:  Morpheus | Web-сайт: xury.zx6.ru

Ответить

  Ответы Всего ответов: 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-сайт: hw.t-k.ru
 Профиль | | #47
Добавлено: 11.05.05 01:33
Млин! Теперь у меня результат скачет ((((

Ответить

Номер ответа: 48
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #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-сайт: basicproduction.nm.ru
 Профиль | | #52
Добавлено: 11.05.05 13:36
Да, похоже дамп памяти - это была не лучшая идея. Никакого кода там нет. Одни адреса, которые прослеживать я обламался где то на 3-м.

Ответить

Номер ответа: 53
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #53
Добавлено: 11.05.05 13:52
 Задача ещё усложняется тем что код создаётся динамически и перед запуском его не существует (я проверял адреса до и после запуска). Короче, если мне заплатят, я могу исследовать VB6 IDE, а так - это слишком нудная работа. :)

Ответить

Номер ответа: 54
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #54
Добавлено: 11.05.05 15:17
Да, и ещё, закачал себе на работе специально для исследования OllyDbg 1.10, но у него почему то куча недоступна (в смысле пункт "Heap" меню "View";). Хотя на сайте написано что это финальный релиз. У кого нибудь есть ещё эта версия? У меня Win2K SP2.

Ответить

Номер ответа: 55
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #55
Добавлено: 11.05.05 21:32
[OFF-TOP]
:)) Не, я балдею.
На этот раз sne схватился с HOOLIGAN'ом (Ну или HOOLIGAN со sne - чтоб никому обидно не было ;).
Блин, со стороны это действительно весело! Такие словесные баталии..
Спасибо: CyRax, sne (а теперь и HOOLIGAN), вы делаете чтение форума намного более интересным.
[/OFF-TOP]

Ответить

Номер ответа: 56
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #56
Добавлено: 11.05.05 23:16
Long - самый быстрый тип переменной.

ну блин, а я не знал :( значит неверно руководствоваться при выборе типа переменной её предпологаемым диапазоном значений? то есть, нет смысла писать 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-сайт: basicproduction.nm.ru
 Профиль | | #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-сайт: basicproduction.nm.ru
 Профиль | | #60
Добавлено: 12.05.05 12:51
Ах да, конечно же там код не только пустого цикла, а и дампа памяти и скидывания этого дампа на диск.

Ответить

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам