Какой код быстрее(Си)?
13.08.2012, 21:41
|
|
|
Частый гость
Регистрация: 19.08.2004
Сообщений: 33
Сказал спасибо: 6
Сказали Спасибо 11 раз(а) в 9 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Сообщение от Hives
|
|
dash или первый и третий. у третьего только c-код красивше.
|
первый и третий дают разный результат, их нельзя сравнивать
|
|
|
|
14.08.2012, 09:35
|
|
|
Прописка
Регистрация: 14.11.2007
Сообщений: 150
Сказал спасибо: 3
Сказали Спасибо 47 раз(а) в 43 сообщении(ях)
|
Re: Какой код быстрее(Си)?
dash, ошибся. Первый вариант будет так:
|
Код:
|
(count›=(MAX-1)) ? (count=0) : (count++); |
|
|
|
|
14.08.2012, 09:44
|
|
|
Прохожий
Регистрация: 05.08.2010
Сообщений: 5
Сказал спасибо: 35
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Возможно такой код
(count‹MAX) ? (count++) : (count=0);
будет быстрее чем
(count›=MAX) ? (count=0) : (count++);
Стоит проверить скорость выполнения обоих вариантов.
|
|
|
|
14.08.2012, 10:19
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Какой код быстрее(Си)?
На АВР самый быстрый - декремент и переход если не 0
Всего одна АСМ-команда и 2...3 цикла
Но это только в том случае, если все равно в какую сторону считать - то есть отмерять количество циклов можно, но считать прошедшее время нельзя
|
|
|
|
14.08.2012, 15:16
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Сообщение от niXto
|
|
На АВР самый быстрый - декремент и переход если не 0
|
А у меня в любом случае получается 3 такта для обновления счётчика, хоть для декремента, хоть для инкремента.
Сообщение от niXto
|
|
Но это только в том случае, если все равно в какую сторону считать - то есть отмерять количество циклов можно, но считать прошедшее время нельзя
|
Что значит "считать прошедшее время"?
|
|
|
|
14.08.2012, 15:56
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Сообщение от niXto
|
На АВР самый быстрый - декремент и переход если не 0
Всего одна АСМ-команда и 2...3 цикла
|
У MCS есть такая комманда (djnz), у PIC-ов есть аналогичные (decfsz, incfsz), а у АВР что-то не припомню.
|
|
|
|
14.08.2012, 16:00
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Ничего не пойму зачем быстрота то? кажись сейчас частоты поваляют выполнять быстро такой небольшой код.
__________________
Глаза боятся,а руки делают.
|
|
|
|
14.08.2012, 16:27
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Сообщение от CERGEI1982
|
|
Ничего не пойму зачем быстрота то?
|
Особенности национального кодописательства...
__________________
Осторожно , злой кот
|
|
|
|
14.08.2012, 18:33
|
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Сообщение от CERGEI1982
|
|
Ничего не пойму зачем быстрота-то? кажись сейчас частоты позволяют выполнять быстро такой небольшой код
|
Всем хочется ещё быстрее, как можно быстрее..Поэтому от изначального вопроса "Какой код быстрее" скатились в ассемблер.
А вообще, кто бы объяснил: в ветке обсуждается вопрос на си, но за каким-то чертом сишники лезут в ассемблерный листинг, зачем?
|
|
|
|
14.08.2012, 18:35
|
|
|
Гражданин KAZUS.RUN
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Какой код быстрее(Си)?
Сообщение от =GM=
|
|
А вообще, кто бы объяснил: в ветке обсуждается вопрос на си, но за каким-то чертом сишники лезут в ассемблерный листинг, зачем?
|
Лезут чтобы увидеть какая конструкция дала более эффективный код.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:37.
|
|