|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.11.2011, 22:08 | #1 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
что эффективнее?
что эффективнее Odd или n mod 2 <> 0? а как доказать?
З.Ы доказать то я и сам смогу если подскажете как посмотреть какая программа работает быстрее? |
09.11.2011, 22:14 | #2 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
лучше всего вообще имхо n and 1<>0. odd примерно так же
а mod это операция деления которая вроде считается что долго выполняется но вообще современные компиляторы умеют сами мод 2 заменять на and 1 |
09.11.2011, 22:27 | #3 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
спасибо но мне на ТУРБО ПАСКАЛЕ и именно mod и Odd просто на одном сайте с модератором повздорили..... и можно все-таки функцию?
Последний раз редактировалось Poma][a; 09.11.2011 в 22:34. |
09.11.2011, 23:29 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
способ #1.
пишете программу, которая проверяет числа в цикле. цикл делаете побольше (ну на 100 миллионов иттераций, например. Перед циклом берете время в миллисекундах. Код:
Находите разницу. меняете в цикле odd на mod 2 - вставляете в тот же цикл. запускаете. Запускать надо хотя бы два-три раза каждую из программ и желательно попеременно. (чтобы уменьшить влияние внешних факторов - загрузку ОС и т.д.) способ #2. - правильный!!! смотрите ассемблерный код, который генерит Паскаль для этих команд и считаете такты выполнения для одной и другой команды. исходный код программы: Код:
Код:
Последний раз редактировалось Serge_Bliznykov; 09.11.2011 в 23:31. |
10.11.2011, 17:54 | #5 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Спасибо огромное! только можно вопрос : как посмотреть ассемблерный код?
|
10.11.2011, 18:45 | #6 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
в комплекте с паскалем идёт turbo debugger (td.exe), через него смотрят
|
10.11.2011, 23:39 | #7 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Да, точно. Вышеприведённый листинг взят именно из окошка TurboDebugger'а. Воспользовался им, т.к. сгенерил паскалевский код с отладочной информацией в EXE, а он понимает формат этой самой отладочной информации. А так код можно посмотреть любым дебаггером/дизассемблером (ну, разумеется, "понимающим" 16-битный ассемблерный код...) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
что получиться из этого кода? или что мы ищем через него? | kroatoani | Общие вопросы Delphi | 5 | 23.10.2010 17:18 |
Что нужно знать (сделать), что бы прога запускалась в Виндос 7 и Виста | marina15056 | Помощь студентам | 19 | 24.08.2010 11:29 |
Товарищи модераторы за что удалили мою Тему? Или я что то не втыкаю!? | Олег Егоров | Помощь студентам | 0 | 19.05.2010 19:39 |
Как узнать что в содержимое буфера обмена добавилось что либо? | zotox | Общие вопросы Delphi | 2 | 15.09.2009 12:07 |