Antonbaton
|
newbie
|
|
|
|
Рег.: 26.01.2010
|
Сообщений: 42
|
|
Рейтинг: -20
|
|
сравнение времени выполнения операций процессором
16.05.2010 15:57
|
|
|
требуется сравнить время затрачиваемое процессором на перезапись и на сложение. Посоветуйте статьи с результатами, ну или в крайнем случае как это можно самому сравнить средствами C++&
|
|
abv
|
|
|
|
|
Рег.: 21.09.2007
|
Сообщений: 6924
|
|
Рейтинг: 6747
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
16.05.2010 16:07
|
|
|
я так скажу. хрен с два что у тебя выйдет оценить из-за всяких разных кешей и конвейеров
|
|
|
abv
|
|
|
|
|
Рег.: 21.09.2007
|
Сообщений: 6924
|
|
Рейтинг: 6747
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
16.05.2010 16:21
|
|
|
в первом приближении (очень тупо, получая ошибку в разы и на порядки), мог бы сделать и так: делаешь некий цикл на миллиард операций. засекаешь время. (секундомером ) потом добавляешь в цикл лишнюю операцию сложения. снова засекаешь. вычитаешь
неужели так сложно было придумать подобную схему эксперимента?
|
|
|
Chamrajnagar
|
T_T
|
|
|
|
Рег.: 24.11.2005
|
Сообщений: 5095
|
Из: Северное кучкино
|
Рейтинг: 3356
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
16.05.2010 17:09
|
|
|
Quote:
Посоветуйте статьи с результатами
Тогда нужно как минимум писать, что за процессор ты используешь.
Quote:
время затрачиваемое процессором
Время до того момента, когда устройство выборки команд возьмется за следующую инструкцию? Или время до того момента, когда результат операции можно будет использовать?
Quote:
на перезапись и на сложение
Перезапись чего и сложение чего?
|
Era of Lite beer, hand calculators and "user-friendly" software. |
|
Antonbaton
|
newbie
|
|
|
|
Рег.: 26.01.2010
|
Сообщений: 42
|
|
Рейтинг: -20
|
|
Re: сравнение времени выполнения операций процессором
[re: abv]
16.05.2010 20:43
|
|
|
Quote:
в первом приближении (очень тупо, получая ошибку в разы и на порядки), мог бы сделать и так: делаешь некий цикл на миллиард операций. засекаешь время. (секундомером ) потом добавляешь в цикл лишнюю операцию сложения. снова засекаешь. вычитаешь
неужели так сложно было придумать подобную схему эксперимента?
Теоретически то да, но при этом результаты получаются шокирующие: при добавлении 2х операций сложения добавка во времени (относительно пустого цикла) более чем в 2 раза больше, чем при добавлении одной операции. при добавлении 3х и 4х операций аналогичный эффект: время растет несоразмерно.
|
|
abv
|
|
|
|
|
Рег.: 21.09.2007
|
Сообщений: 6924
|
|
Рейтинг: 6747
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
16.05.2010 20:51
|
|
|
взботни для начала. http://habrahabr.ru/blogs/development/93263/
потом почитай еще где-нибудь как примерно работает конвейер у процессора.
а потом узнай че-нить про оптимизации компиляторов. которые выкидывают нафиг твой пустой цикл
|
|
|
Spin
|
он самый
|
|
|
|
Рег.: 17.09.2003
|
Сообщений: 14521
|
|
Рейтинг: 4387
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
16.05.2010 21:00
|
|
|
без указания архитектуры и самого кода теста тут нечего говорить показывай
|
- а этот ваш С++ - он функциональный? - еще какой функциональный! |
|
abv
|
|
|
|
|
Рег.: 21.09.2007
|
Сообщений: 6924
|
|
Рейтинг: 6747
|
|
Re: сравнение времени выполнения операций процессором
[re: Spin]
16.05.2010 21:02
|
|
|
В ответ на:
самого кода теста
надеюсь, имеется ввиду ассемблерный вид
|
|
|
Spin
|
он самый
|
|
|
|
Рег.: 17.09.2003
|
Сообщений: 14521
|
|
Рейтинг: 4387
|
|
Re: сравнение времени выполнения операций процессором
[re: abv]
16.05.2010 21:06
|
|
|
желательно, но в общем - хотя бы С++ - посмотреть что за команды вызывают увеличение в 2 раза вдруг он в этой команде в память лезет а не в регистрах копается?
|
- а этот ваш С++ - он функциональный? - еще какой функциональный! |
|
vissi
|
|
|
|
|
Рег.: 30.09.2007
|
Сообщений: 9275
|
|
Рейтинг: 8222
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
16.05.2010 21:52
|
|
|
В ответ на:
затрачиваемое процессором на перезапись и на сложение
перезапись куда? в память - это уже не совсем процессор. в некоторых биосах можно отключить кэш процессора. Далее, нужно взять компилятор без оптимизации (чтобы получить именно инструкцию add), некоторый цикл (надо придумать, какой), убрать из него операцию add и через rdtsc измерить время с циклом и без. Вычесть, поделить. Возможно, стоит как-то избежать взаимодействия с памятью во время измерения.
|
|
|
Rad
|
delinquent guy
|
|
|
|
Рег.: 06.09.2005
|
Сообщений: 17291
|
Из: here and there
|
Рейтинг: 2232
|
|
Re: сравнение времени выполнения операций процессором
[re: abv]
16.05.2010 23:09
|
|
|
В ответ на:
делаешь некий цикл на миллиард операций. засекаешь время. (секундомером ) потом добавляешь в цикл лишнюю операцию сложения. снова засекаешь. вычитаешь
как ты при этом докажешь, что не попал на какую-то особенность связанную с размером очереди команд и т.п.?
|
|
|
abv
|
|
|
|
|
Рег.: 21.09.2007
|
Сообщений: 6924
|
|
Рейтинг: 6747
|
|
Re: сравнение времени выполнения операций процессором
[re: Rad]
16.05.2010 23:15
|
|
|
ты пост выше читал? ну а хотя бы начало цитируемого поста?
|
|
|
Maestro
|
поискатель
|
|
|
|
Рег.: 17.09.2003
|
Сообщений: 28615
|
Из: SPB
|
Рейтинг: 9311
|
|
Re: сравнение времени выполнения операций процессором
[re: Antonbaton]
17.05.2010 02:53
|
|
|
а зачем? это же, в общем-то, будут абстрактные попугаи, и в реальном, а не шарообразном в вакууме, приложении, на реальной системе, твоя статистика работать не будет. если есть некоторая задача, для которой существуют несколько принципиальных методов, стоит реализовать хотя бы самые затратные куски и посмотреть что будет.
|
Muistatko mitä enemmin, vain jo loppuivat lorusi? |
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: сравнение времени выполнения операций процессором
[re: abv]
17.05.2010 08:42
|
|
|
|
Rad
|
delinquent guy
|
|
|
|
Рег.: 06.09.2005
|
Сообщений: 17291
|
Из: here and there
|
Рейтинг: 2232
|
|
Re: сравнение времени выполнения операций процессором
[re: Maestro]
17.05.2010 14:40
|
|
|
В ответ на:
а зачем? это же, в общем-то, будут абстрактные попугаи, и в реальном, а не шарообразном в вакууме, приложении, на реальной системе, твоя статистика работать не будет. если есть некоторая задача, для которой существуют несколько принципиальных методов, стоит реализовать хотя бы самые затратные куски и посмотреть что будет.
В таком случае, почему бы не поискать подобные данные в спеках на процы? Там, по идее, должно быть указано типичное время обработки команды в тактах и даже рекомендации по выстраиванию команд. Во всяком случае, что-то такое я видел для P1 давным давно.
|
|
|
Antonbaton
|
newbie
|
|
|
|
Рег.: 26.01.2010
|
Сообщений: 42
|
|
Рейтинг: -20
|
|
Re: сравнение времени выполнения операций процессором
[re: Rad]
17.05.2010 21:20
|
|
|
всем спасибо, особенно за первую ссылку. Проблема можно считать решена (в ее непригодности к реальным задачам я не сомневался, но от меня все же требовали ее решение).
|
|