Re: Что быстрее
От: ned Австралия  
Дата: 26.07.14 06:56
Оценка:
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


А вот еще если код читать, то первый вариант однозначно быстрее.
Re: Что быстрее
От: AlexRK  
Дата: 26.07.14 07:55
Оценка:
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


А о каком языке программирования и каком компиляторе идет речь?
Re: Что быстрее
От: koodeer  
Дата: 26.07.14 08:09
Оценка:
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


Как мне кажется, цифру 2 нажать можно чуточку быстрее, чем 1. До неё банально меньше тянуться. Но это может зависеть от клавиатуры и кто как привык держать руки.
Re: Что быстрее
От: mik1  
Дата: 26.07.14 09:45
Оценка:
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


Годный вопрос. Отвечу, что в бесконечном цикле надо оптимизировать тело цикла, а не такое условие. Ну а дальше куда разговор понесет.
Re: Что быстрее
От: CreatorCray  
Дата: 26.07.14 09:50
Оценка: :)))
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


Ну давай подумаем:
while (0) выполняется мнгновенно.
while (1) очевидно медленее
значит while (2) должно выполняться ещё медленее
ну а while (100500) должно просто зверски тормозить
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Что быстрее
От: Engler Беларусь  
Дата: 26.07.14 13:00
Оценка:
Здравствуйте, Anatolix, Вы писали:

A>Уже не пройдешь.


E> С технической точки зрения, вероятнее всего, вопрос лишен смысла.

E> Ну а если рассмотреть, сферический ассемблер и аппаратную базу в вауккуме , то

забыл дописать про сферический компилятов в вауукуме ...


А как бы Вы ответили?
Re[4]: Что быстрее - дополнение
От: Engler Беларусь  
Дата: 26.07.14 13:03
Оценка:
Здравствуйте, Engler, Вы писали:

E>А как бы Вы ответили?

При условии, что очевидно, это будет работать одинаково, в 99% случаев.
Re: Что быстрее
От: eskimo82  
Дата: 26.07.14 13:48
Оценка:
A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?
Зависит от того что стоит вместо троеточия.
Re[5]: Что быстрее
От: eskimo82  
Дата: 26.07.14 14:00
Оценка:
Aё>Для MSVC:
Aё>Я к тому, что неоднозначно но даже с условным переходом проверка на равенство нулю.
Ты в дебаге наверно собрал.
Re: Что быстрее
От: alpha21264 СССР  
Дата: 26.07.14 14:22
Оценка: -1
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


На дворе начало 21 века, а на собеседованиях до сих пор задают вопросы на тему "как быстрее".

Течёт вода Кубань-реки куда велят большевики.
Re: Что быстрее
От: aik Австралия  
Дата: 26.07.14 15:28
Оценка:
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


заменить в вопросе while(2) на while(cos(0)) — и вопрос заиграет новыми красками
Re[5]: Что быстрее
От: kleng  
Дата: 26.07.14 15:48
Оценка: 1 (1) +2
Здравствуйте, abibok, Вы писали:

A>А если предположить, что тимлид не идиот?


А ведет себя, как идиот. Странно.
Re[2]: Что быстрее
От: eskimo82  
Дата: 26.07.14 16:03
Оценка: +1
aik>заменить в вопросе while(2) на while(cos(0)) — и вопрос заиграет новыми красками

Ну так в приличной рантайм библиотке функция cos имеет атрибут __pure, а поскольку зависит она от константы 0, то результат её вычисления является константой — ивариантом цикла, следовательно может быть вынесен "за скобки" приличным компилятором.

Микрософт, как пример неприличного компилятора, не предлагать
Re: Что быстрее
От: fin_81  
Дата: 26.07.14 16:03
Оценка:
- Не знаю. А ты/Вы?
От ответа будущего кандидата в мои начальники зависит будет он принят или нет
Re: Что быстрее
От: ro_man  
Дата: 26.07.14 17:43
Оценка:
Здравствуйте, abibok, Вы писали:

A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


Очевидно, что первое. Компилятору/машине все-равно, а человек на второе условие тупит чуть дольше.
Re[2]: Что быстрее
От: alzt  
Дата: 26.07.14 18:16
Оценка:
Здравствуйте, Engler, Вы писали:

A>>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?


E>С технической точки зрения, вероятнее всего, вопрос лишен смысла.


E>Ну а если рассмотреть, сферический ассемблер и аппаратную базу в вауккуме, то

E>теоретическое битовое предсавление 1 ( 0000...1 ) можно быстрее сравнить с 0, т.е отсекаем по певому биту.
E>Тогда как для двойки 0000010 нужно сделать сдвиг и потом сравнить ...
E>Это конечно, же если у нас двоичная система ...

E>Ну это второе что приходит на ум, первое это "мотать как можно быстрее"


Тогда вопрос — каких чисел больше: целых или натуральных?
Re[5]: Что быстрее
От: __kot2  
Дата: 26.07.14 19:20
Оценка:
Здравствуйте, Aртём, Вы писали:
Aё>Я к тому, что неоднозначно но даже с условным переходом проверка на равенство нулю.
вообще, я сначала было хотел еще добавить, что команды сравнения констант в процессоре нет
но мс компилятор действительно нашел выход!
Re: Что быстрее
От: ononim  
Дата: 26.07.14 20:24
Оценка:
A>Что вы ответите на вопрос "что быстрее — while(1) {...} или while(2) {...}"?
Я лично всегда пишу пустой for. Интереса ради проверил все три варианта в VS2008 (я не некрофил, я любитель антиквариата ) , получил неожиданный результат в дизасме:
    for (;;)
    {
        printf("foo");
0040AD44  push        offset ___mnames+294h (40DDB8h) 
0040AD49  call        printf (4016FCh) 
0040AD4E  add         esp,4 
    }
0040AD51  jmp         wmain+4 (40AD44h) 

/////////////////////////////////////////////

    while (1)
0040AD44  mov         eax,1 
0040AD49  test        eax,eax 
0040AD4B  je          wmain+1Ch (40AD5Ch) 
    {
        printf("foo");
0040AD4D  push        offset ___mnames+294h (40DDB8h) 
0040AD52  call        printf (4016FCh) 
0040AD57  add         esp,4 
    }
0040AD5A  jmp         wmain+4 (40AD44h) 

/////////////////////////////////////////////

    while (2)
0040AD44  mov         eax,2 
0040AD49  test        eax,eax 
0040AD4B  je          wmain+1Ch (40AD5Ch) 
    {
        printf("foo");
0040AD4D  push        offset ___mnames+294h (40DDB8h) 
0040AD52  call        printf (4016FCh) 
0040AD57  add         esp,4 
    }
0040AD5A  jmp         wmain+4 (40AD44h)


И это релиз, с включенной оптимизацией на скорость
Как много веселых ребят, и все делают велосипед...
Re[3]: Что быстрее
От: Engler Беларусь  
Дата: 26.07.14 23:52
Оценка:
Здравствуйте, alzt, Вы писали:

A>Тогда вопрос — каких чисел больше: целых или натуральных?


Хм. Пока я не понимаю, к чему вопрос ведет , ну ладно.

Насколько я помню, множество целых чисел включает в себя множество натуральных.

Т.е натуральные это 1,2,3 и.т.д, а целые как минимум включают в себя еще и отрицательные числа.

=> целых чисел больше.
Re[6]: Что быстрее
От: Vain Россия google.ru
Дата: 27.07.14 01:11
Оценка:
Здравствуйте, kleng, Вы писали:

A>>А если предположить, что тимлид не идиот?

K>А ведет себя, как идиот. Странно.
ну тут как в поговорке про дураков
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.