|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 5, 2003 00:48:12 Интересный на мой взгляд вопрос! Производительность программы можно измерить - в тактах - в мили секундах А вот есть ли формула по которой можно вычислить секунды по тактам или наоборот??? |
|
|
Дата: Дек 5, 2003 00:51:03 Дык секунды таки от проца зависят. Чем больше частота тем быстрее будет, а такты всё те же :-) |
|
|
Дата: Дек 5, 2003 00:55:16 Asterix :-)))) Я про подсчет времени выполнения проги... |
|
|
Дата: Дек 5, 2003 01:52:04 А что на процессоре что-то другое может выполнятся кроме проги :-) |
|
|
Дата: Дек 5, 2003 02:01:43 Что есть частота процессора - это количество тактов в секунду, какую тебе ещё нужно формулу?! Правда есть ещё понятие MIPS(Million Instruction Per Second), и оно вообще зависит от многих причин, но это не твой случай. |
|
|
Дата: Дек 5, 2003 02:37:26 Asterix, вы нифига не правы -) делаем так: ExecutionTickCount/GetTickCountPerMilisecond(); ессно и то и другое нужно подсчитывать в рантайме -) Кстати не забываем про кыш процессора и т.д. -) |
|
|
Дата: Дек 5, 2003 05:03:57 GetTickCount - кол-во миллисекунд а в тактах GetTickCount/19.2 ....кажись так..... |
|
|
Дата: Дек 5, 2003 08:21:49 Ну и где я не прав, я говорю что количество секунд/миллисекунд будет зависеть от ТАКТОВОЙ частоты процессора. |
|
|
Дата: Дек 5, 2003 10:50:40 Всё верно Asterix говорит. Если у тебя проц работает на частоте 300 МГц, это значит 300 миллионов тактов в секунду. И это всё! |
|
|
Дата: Дек 5, 2003 20:35:06 ну вы, блин, даёте...;)) |
|
|
Дата: Дек 5, 2003 23:19:56 Sm_Andrei НУ ЛАДНО!!! А вот допустим взять кусок проги на асме и как тут определить!! На реальном куске программы??? К примеру милисекунды можно засеч при помощифункций!!! А вот как такты узнать??? по этим милиспекундам!!!??? Вот в чем вопрос!!! |
|
|
Дата: Дек 6, 2003 01:40:27 · Поправил: Asterix emergenter Математику знаешь? ;-) 300000000 тактов - это в 1 сек X тактов - за 0.001 сек(это 1 милли секунда) Простая пропорция X=300000000*0.001/1=300000 тактов т.е. 1 милли сек соответствует 300000 тактам для 300МГц проца. Вот собственно и всё, если я в расчётах не ошибся :-) |
|
|
Дата: Дек 6, 2003 07:28:55 emergenter А rdtsc нельзя что ли использовать? По-моему, в этом случае (кусок программы на асме) ее вполне можно применить. |
|
|
Дата: Дек 6, 2003 11:37:50 · Поправил: Sm_Andrei emergenter - Если ты согласен на погрешность в 300000 тактов(для 300МГц проца), то см. сообщение Asterix. - Если тебе нужна точность подсчета скорости выполнения куска программы,тогда тебе надо считать такты, см. сообщение Hangatyr; Я, например, считал такты через команды: rdmsr и wrmsr(у меня tasm команду rdtsc не знает): mov ecx,10h ;выбираем регистр tsc xor edx,edx xor eax,eax wrmsr ;записываем edx:eax в tsc ... ... ;здесь твой кусман проги ... rdmsr ;записываем содержимое tsc в edx:eax Значение регистра tsc увеличивается на 1 каждый такт проца. В результате в edx:eax получаешь число тактов работы твоего куска проги. |
|
|
Дата: Дек 6, 2003 12:03:47 Hangatyr Ты не понял :-) Тут вся фишка в том, что засёк человек такты с помощью rdtsc, а потом хочет получить миллисекунды или наоборот. Или, например, такая задача нужно рассчитать частоту проца, вот тогда засёк такты и засёк время и уже можно вычислить частоту проца :-) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063 |