@Urukhayy

За скорость обработки циклов отвечает процессор?

За скорость обработки циклов отвечает процессор?
Если в однопоточном выполнении какого-либо сценария будет 50 тысяч итераций, это нормально?
А если поставить всё это дело на машину с высокочастотным процессором? А если многоядерный процессор? И если программа выполняется в одном потоке, то количество ядер не важно?
  • Вопрос задан
  • 597 просмотров
Решения вопроса 3
tsarevfs
@tsarevfs
C++ developer
За скорость обработки циклов отвечает процессор?
Внутри цикла могут быть операции, скорость которых зависит от быстродействия памяти или даже жесткого диска, например если вы читаете там из файла. Но процессор тоже важен.
Если в однопоточном выполнении какого-либо сценария будет 50 тысяч итераций, это нормально?
Если теле цикле простая арифметика, то такой цикл будет выполнятся доли секунды.
А если поставить всё это дело на машину с высокочастотным процессором?
Зависит не только от частоты процессора, но скорее всего будет быстрее.
И если программа выполняется в одном потоке, то количество ядер не важно?
С кучей ядер нашу программу будут меньше прерывать другие процеессы, например сама операционная система. См. "вытесняющая многозадачность".
Ответ написан
@vilgeforce
Раздолбай и программист
Смотря что в цикле происходит. Если в цикле вы читаете 16 гб с диска - узким местом будет диск. Если очень много работы с памятью - память. 50000 в цикле - не проблема, 2^32 - тоже. Частота процессора может влиять, а может и нет. Многопоточность - вопрос сложный, но скорее всего программа сама не поймет что можно параллелить и не будет создавать новых потоков.
Ответ написан
leahch
@leahch
Я мастер на все руки, я козлик Элек Мэк :-)
За скорость обработки циклов отвечает процессор?

1. Да. Но, если в цикле присутствуют обращения к диску, сети или чему-то внешнему, кроме памяти и самих регистров процессора, то процессор в периоды этих обращений будет простаивать.

Если в однопоточном выполнении какого-либо сценария будет 50 тысяч итераций, это нормально?

2. Нормально, если задачу нельзя разбить на независимые подзадачи. Пример неразбиваемой задачи найти сложно, но например задача комивояжера в классическом исполнении.

А если поставить всё это дело на машину с высокочастотным процессором?

3. Будет быстрее, если нет НО из первого ответа.

А если многоядерный процессор?

4. Будет быстрее, если нет НО из второго ответа.

И если программа выполняется в одном потоке, то количество ядер не важно?

5. Да, неважно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы