Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить скорость выполнения кода? 
:(
    Опции темы
sergejzr
Дата 8.11.2004, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Question: 
Как определить скорость выполнения кода?
How could one determine the duration of code execution and print out the time difference. 
Wie misst man die Dauer der Ausfuehrung eines Javascript Codes? Wie misst man die Zeitdifferenz

Answer:
Нам поможет обьект Date и его функция getTime

Браузеры:
Internet Explorer Yes, Mozilla Yes, Opera Yes

Пример:
Код
<!--
    Thanks to:
    sergej.z http://vingrad.ru/@sergej.z
    for this excample
-->
<script language='JavaScript' type="text/javascript">
function difference(date1,date2)
{
    var ret = new Date(); //Возвращаемый обьект с разницей времени
    ret.setTime(Math.abs(date1.getTime() - date2.getTime()));//Заряжаем обьект разницей
    return ret;
}

//Превращаем обьект в строку
function printDate(date)
{
    return date.getMinutes()+" мин:"+date.getSeconds()+"сек:"+date.getMilliseconds()+" мс.";
}

//Возможно распечатать ручками :)
function printDate_alternative(date)
{
timediff = date.getTime();
//Полные недели 604800000=1000 * 60 * 60 * 24 * 7
weeks = Math.floor(timediff / (604800000));
timediff -= weeks * (604800000);
//Полные дни 86400000=1000 * 60 * 60 * 24
days = Math.floor(timediff / (86400000));
timediff -= days * (86400000);
//Полные часы 3600000=1000 * 60 * 60
hours = Math.floor(timediff / (3600000));
timediff -= hours * (3600000);
//Полные минуты 60000=1000 * 60
mins = Math.floor(timediff / (60000));
timediff -= mins * (60000);
//Полные секунды
secs = Math.floor(timediff / 1000);
timediff -= secs * 1000;
//Остались лишь милисекунды

return weeks + " недели, " + days + " дни, " + hours + " часы, " + mins + " минуты " + secs + " секунды "+timediff+" миллисекунды";
}


d1=new Date();
//Ваш код. Например:
for(var t=0;t<1000000;t++)if(t%1000==0)document.write('1');
d2 = new Date();

alert("Цикл занял: "+printDate(difference(d1,d2)));
</script>



Примечания:
              
Спасибо:
Sardarsergej.z  за предоставленный материал.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.