Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-07-10 15:06:58

  kubak - Użytkownik

kubak
Użytkownik
Zarejestrowany: 2011-05-06

Java na Debianie - poważny problem z Thread.sleep

Witam,

Mam problem z Javą 6, który występuje tylko na Debianie (tylko tu go znalazłem).

Debian GNU/Linux 6.0.5 (squeeze)
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)

Podstawowe polecenie Thread.sleep() zatrzumuje wątak na kilkanaście razy dłuższy czas niż powinno.

Przykładowy kod:

Kod:

    try {
      System.out.println("start");
      long t  = new Date().getTime();
      Thread.sleep(500);
      System.out.println("took: "+(new Date().getTime() - t)+" ms.");
    } catch (Exception x ) {
      x.printStackTrace();
    }

Daje zawsze inny output, na przykład:

Kod:

start
took: 58006 ms.

A powinno dawać mniej więcej 500 ms

Podejrzewam, że to może być kwestia jakiś debianowych bibliotek.
Czy ktoś zna rozwiązanie tego problemu?

Offline

 

#2  2012-07-10 15:38:17

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Java na Debianie - poważny problem z Thread.sleep

http://www.javatuning.com/why-is-thread-sleep-inherently-inaccurate/

Offline

 

#3  2012-07-10 15:43:23

  kubak - Użytkownik

kubak
Użytkownik
Zarejestrowany: 2011-05-06

Re: Java na Debianie - poważny problem z Thread.sleep

Tą analizę znam, ona wskazuje na różnice rzędu kilkunastu milisekund, co mi w ogóle nie przeszkadza.
U mnie kod zamiast wykonywać sie pół sekundy wykonuje się prawie minutę!

Pracuję na javie na Debianie od wielu lat i wcześniej tego problemu nie zauważałem. Zaczął on występować po ostatnim upgradzie pakietów, ale za nic nie potrafię ustalić, które to aktualizacje spowodowały.
Na pewno nie aktualizacja javy, bo sprawdziłem, że problem występuje na starszych wersjach także.

Offline

 

#4  2012-07-10 22:42:31

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: Java na Debianie - poważny problem z Thread.sleep

A pokaż, co żeś aktualizował (logi).

Offline

 

#5  2012-07-10 23:22:22

  kubak - Użytkownik

kubak
Użytkownik
Zarejestrowany: 2011-05-06

Re: Java na Debianie - poważny problem z Thread.sleep

Commandline: apt-get -u upgrade
Upgrade: bind9-host:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), dnsutils:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), mysql-server:amd64 (5.1.61-0+squeeze1, 5.1.63-0+squeeze1), php5:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), libdns69:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), libapache2-mod-php5:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), mysql-server-core-5.1:amd64 (5.1.61-0+squeeze1, 5.1.63-0+squeeze1), php5-gd:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), libmysqlclient16:amd64 (5.1.61-0+squeeze1, 5.1.63-0+squeeze1), libisccc60:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), php-pear:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), liblwres60:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), libbind9-60:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), php5-pgsql:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), libisccfg62:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), libpq5:amd64 (9.1.3-2~bpo60+1, 9.1.4-1~bpo60+1), php5-mysql:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), host:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), php5-cli:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), libisc62:amd64 (9.7.3.dfsg-1~squeeze4, 9.7.3.dfsg-1~squeeze5), mysql-common:amd64 (5.1.61-0+squeeze1, 5.1.63-0+squeeze1), php5-common:amd64 (5.3.3-7+squeeze9, 5.3.3-7+squeeze13), mysql-server-5.1:amd64 (5.1.61-0+squeeze1, 5.1.63-0+squeeze1), mysql-client-5.1:amd64 (5.1.61-0+squeeze1, 5.1.63-0+squeeze1)
End-Date: 2012-07-02  02:23:14

Zdaje mi się, że jeszcze jakieś pakiety były aktualizowane, ale nie mam tego w logach apt.

[i]// jeśli masz coś do dodania, edytuj posta zamiast pisać kolejnego pod swoim własnym — ArnVaker[/i]

Offline

 

#6  2012-07-10 23:44:52

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: Java na Debianie - poważny problem z Thread.sleep

Po pierwsze, to zaktualizuj javę - skoro nie działa teraz, to działać najprawdopodobniej nie będzie później, a zyskasz nowszą wersję (bodaj 1.7). Dodajesz repozytorium:

Kod:

deb http://www.duinsoft.nl/pkg debs all

I wykonujesz:

Kod:

sudo aptitude update && sudo aptitude purge sun-jave6-bin sun-java6-plugin sun-java6-jre && sudo aptitude install update-sun-jre && sudo aptitude clean

Próbowałeś zatrzymać czymś innym, niż thread.sleep?
Czy w rachubę wchodzi zmiana sun-java6-XXX na np icedtea?

Offline

 

#7  2012-07-11 09:31:57

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Java na Debianie - poważny problem z Thread.sleep

Może fakt, że czasy są dziwne. Odpalałem ten program i miałem zazwyczaj wynik 500ms, czasem 501ms. Co do JDK, osobiście nigdy nie korzystam z paczek. Polecam ściągnać archiwum ze strony oracle, rozpakować, ustawić JAVA_HOME, dodać do PATH, można chyba nawet do alternatyw debianowych. Z paczkami bywa różnie, no i najlepiej jak najnowsza wersja.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.024 seconds, 22 queries executed ]

Informacje debugowania

Time (s) Query
0.00016 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00161 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.191.162.73' WHERE u.id=1
0.00111 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.162.73', 1732664516)
0.00072 SELECT * FROM punbb_online WHERE logged<1732664216
0.00091 DELETE FROM punbb_online WHERE ident='13.58.18.135'
0.00086 DELETE FROM punbb_online WHERE ident='13.59.129.141'
0.00097 DELETE FROM punbb_online WHERE ident='18.219.207.115'
0.00085 DELETE FROM punbb_online WHERE ident='18.221.52.77'
0.00398 DELETE FROM punbb_online WHERE ident='3.135.190.107'
0.00079 DELETE FROM punbb_online WHERE ident='3.138.170.67'
0.00079 DELETE FROM punbb_online WHERE ident='3.140.198.201'
0.00101 DELETE FROM punbb_online WHERE ident='3.142.136.210'
0.00086 DELETE FROM punbb_online WHERE ident='3.15.211.41'
0.00082 DELETE FROM punbb_online WHERE ident='3.15.228.32'
0.00082 DELETE FROM punbb_online WHERE ident='3.15.239.0'
0.00060 SELECT topic_id FROM punbb_posts WHERE id=206073
0.00080 SELECT id FROM punbb_posts WHERE topic_id=21586 ORDER BY posted
0.00087 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=21586 AND t.moved_to IS NULL
0.00016 SELECT search_for, replace_with FROM punbb_censoring
0.00113 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=21586 ORDER BY p.id LIMIT 0,25
0.00085 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21586
Total query time: 0.02074 s