RSS 2.0 Версия для КПК (Бета)
Конференция JavaTalks  :  Java форум
Java форум JavaTalks
форум программистов 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
проблема измерения времени
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Java форум JavaTalks -> Нити и процессы
Предыдущая тема :: Следующая тема  
Автор Сообщение
ola_nag
Новичок


Зарегистрирован: 25.01.2010
Сообщения: 8

СообщениеДобавлено: Янв 25, 2010 14:25    Заголовок сообщения: проблема измерения времени Ответить с цитатой

Вот столкнулась с проблемой:
1. 2 компьютера, на обоих windows xp
2. программа на java. Меряю время нажатия клавиши пользователем. Для этого использую метод System.currenttimemillis().
3. Обнаружила что на одном компьютере программа время показывает нормальное, на втором время увеличивается. Сделала тест с хронометром - результаты показали что второй комп для каждых ~10 сек мне показывает ~12. То есть в реальном времени прошло 10 сек, посчитало 12, 20-24, 30-36 и т.д. На первом компьютере подсчет ведется нормально.
Вопрос: в чем проблема, куда копать или как настроить второй компьютер?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Староверъ
Ктапубеп


Зарегистрирован: 26.01.2008
Сообщения: 4247
Откуда: Русь

СообщениеДобавлено: Янв 25, 2010 14:31    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

На этот System.currenttimemillis() нельзя положиться, он не даст супер-точных значений. Есть специальная платная JVM вроде, где такое реализовано. Может еще nanoTime() тебе поможет?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ola_nag
Новичок


Зарегистрирован: 25.01.2010
Сообщения: 8

СообщениеДобавлено: Янв 25, 2010 15:39    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

не помогло
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Pahan
Бывалый


Зарегистрирован: 13.04.2009
Сообщения: 342
Откуда: Минск

СообщениеДобавлено: Янв 25, 2010 15:51    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

А как проводятся эти измерения?
Если часы в системном трее работают нормально не спешат не отстают. То и System.currenttimemillis() должен работать нормально.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
finalizer
Завсегдатай


Зарегистрирован: 19.01.2008
Сообщения: 1135

СообщениеДобавлено: Янв 25, 2010 17:53    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

System.currentTimeMillis() является нативным методом и возвращает точный результат. Другое дело, что операции перед вызовом этого метода могут занимать разное время на разных компьютерах. Вообще было бе неплохо взглянуть на ваш код.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ola_nag
Новичок


Зарегистрирован: 25.01.2010
Сообщения: 8

СообщениеДобавлено: Янв 26, 2010 23:21    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

Походу это винда неправильное значение возвращает
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Pahan
Бывалый


Зарегистрирован: 13.04.2009
Сообщения: 342
Откуда: Минск

СообщениеДобавлено: Янв 26, 2010 23:47    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

Если отставания так, заметны, что вместо 10 сек дает 12сек. То можно зайти в BIOS и проверить с помощью секундомера как идут часы там. Потому, что были случаю когда проблемы с часами возникали из-за вирусов.
Если же проблема на уровне биоса, то можно попробовать заменить батарейку на материнской плате. Если это не поможет, то тут наверно только материнку менять.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Староверъ
Ктапубеп


Зарегистрирован: 26.01.2008
Сообщения: 4247
Откуда: Русь

СообщениеДобавлено: Янв 26, 2010 23:52    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

Этот метод возвращает значения с точностью масимум 6 миллисекунд. Во всяком случае я точней не видал Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Pahan
Бывалый


Зарегистрирован: 13.04.2009
Сообщения: 342
Откуда: Минск

СообщениеДобавлено: Янв 26, 2010 23:54    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

А как ты это понял?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Староверъ
Ктапубеп


Зарегистрирован: 26.01.2008
Сообщения: 4247
Откуда: Русь

СообщениеДобавлено: Янв 26, 2010 23:58    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

Присваивал двум переменным время, а потом их выводил.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
ola_nag
Новичок


Зарегистрирован: 25.01.2010
Сообщения: 8

СообщениеДобавлено: Янв 28, 2010 1:44    Заголовок сообщения: Re: RE: проблема измерения времени Ответить с цитатой

Староверъ писал(а):
Этот метод возвращает значения с точностью масимум 6 миллисекунд. Во всяком случае я точней не видал Smile

У меня 15-16 мс. Но это не задержка измерения. Это интервал измерения, приводящий к максимальной погрешности в 16мс. Финальное значение то не кумулируется, как в моем случае.

Поставили линукс. Сделаю тест программы на линуксе.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ola_nag
Новичок


Зарегистрирован: 25.01.2010
Сообщения: 8

СообщениеДобавлено: Янв 28, 2010 1:45    Заголовок сообщения: Re: RE: проблема измерения времени Ответить с цитатой

Pahan писал(а):
Если отставания так, заметны, что вместо 10 сек дает 12сек. То можно зайти в BIOS и проверить с помощью секундомера как идут часы там. Потому, что были случаю когда проблемы с часами возникали из-за вирусов.
Если же проблема на уровне биоса, то можно попробовать заменить батарейку на материнской плате. Если это не поможет, то тут наверно только материнку менять.


если и на линуксе будет проблема - тогда полезу в биос.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
almagnit
Модератор


Зарегистрирован: 20.02.2009
Сообщения: 708
Откуда: Луганск

СообщениеДобавлено: Янв 29, 2010 0:17    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

Цитата:
Если же проблема на уровне биоса, то можно попробовать заменить батарейку на материнской плате. Если это не поможет, то тут наверно только материнку менять.

Ух ниче себе, а может взять платную JVM Smile

А как это измерять часы БИОСа секундомером, рука не дрогнет ?
Ведь человеческая реакция медленнее будет частоты создаваемой мат.платой (кварцами на ней) и считываемой биосом.
Вот Вы сможете при частоте 50Гц дотронуться до розетки с переменным током пальцем, чтобы током не ударило, это когда фаза находится в районе нуля, если да, тогда на кнопку секундомера нажать успеете Wink

_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Pahan
Бывалый


Зарегистрирован: 13.04.2009
Сообщения: 342
Откуда: Минск

СообщениеДобавлено: Янв 29, 2010 0:30    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

Я же сказал, если отставания так, заметны, что вместо 10 сек дает 12сек.
Был просто случай один, начали часы у одного человека дуреть, на совершенно новом компе. Причем так, что в принципе и вез секундомера видно. Зашли в биос начали смотреть на часы там, там внешне все нормально было. Отсюда подумали, что винда шалит. В итоге это был вирус.
15 мил конечно не рука дрогнет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ola_nag
Новичок


Зарегистрирован: 25.01.2010
Сообщения: 8

СообщениеДобавлено: Фев 06, 2010 0:50    Заголовок сообщения: RE: проблема измерения времени Ответить с цитатой

с часами в винде точно не все ладно.
В командной строке вызываю комманду time, и размер задержки в java программе меняется, но по разному и до -1,1с, -0.6с и т.д.
Что происходит, когда ввожу time? почему меняется системный результат? Как настроить часы в винде, чтоб правильно тикали?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Java форум JavaTalks -> Нити и процессы Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Этот сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

GetJava Download Button Rambler's Top100
Хостинг от bizname.ru
При поддержке hitech.com.ua