Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Общие вопросы разработки программ _ Время выполнения программы

Автор: Fanat 10.12.2007 19:25

Как посчитать сколько будет работать программа, если известно количество арифметических операций?..то есть вопрос такой сколько компьютер выполняет арифметических операций например за секунду...как повлияет на время работы если использовать динамические обьекты?..(время для обращения к памяти?)...

Автор: andriano 10.12.2007 22:07

Подсчитать ОЧЕНЬ трудно. Можно считать, что невозможно. Зато можно измерить.
Только следует учитывать, что достаточно большое и даже основное время в ряде случаев может приходиться не на арифметические операции, а на условные оператоы и доступ к памяти.

Автор: Архонт 15.01.2008 6:42

Есть функция(не помню как пишется, вроде gettime), опеделяющая время с точностью до милисек. Сделай замер в начале и в конце работы программы. Потом найди разность. Вот и время программы с точностью до милисекунд

Автор: Fanat 20.01.2008 20:52

Цитата(Архонт @ 15.01.2008 6:42) *

Есть функция(не помню как пишется, вроде gettime), опеделяющая время с точностью до милисек. Сделай замер в начале и в конце работы программы. Потом найди разность. Вот и время программы с точностью до милисекунд


Имелось ввиду априорно...

Автор: andriano 21.01.2008 8:47

Цитата(Fanat @ 20.01.2008 20:52) *

Имелось ввиду априорно...

Это понятно.
Но дело в том, что на разных процессорах время выполнения (как в единицах времени, так и в тактах процессора) будет различным. И, самое важное, процессор внутри выглядит совсем не так, как выглядит снаружи его программная модель. Отдельные инструкци обрабатываются не поочередно, а одновременно, находясь на различных стадиях выполнения конвейера. Поэтому время выполнения одной инструкции в принципе не существует, а для последовательности может быть вычислено только с учетом текущей загрузки вычислительных блоков и предыстории. Другими словами, для точного вычисления необходимы данные об архитектуре процессора и его микрокоде, являющиеся know-how, отсутствующие в широком доступе.

Автор: Fanat 22.01.2008 22:57

Спасибо.. smile.gif