Op dinsdag 01 januari 2002 12:23 schreef minne het volgende:
Op deze manier kan het nooit het nooit erg precies werken, want zo gebruik je de gewone computerklok(die de tijd op de pc bijhoudt), en das een kwartskristal die maar 18.6 pulsen per seconde geeft, niet al te precies dus...

Het is om te beginnen 18.2 (omdat je dan na 2^16 tikken precies een uur verder bent), en verder is die frequentie gewoon programmeerbaar. Het ding wat er verantwoordelijk voor is heet niet voor niets
Programmable Interval Timer. Het maximum ligt iets boven de 1MHz (diezelfde 18.2, maal 2^16), en dat is ruim voldoende voor milliseconden.
En verder is Date() gewoon nauwkeuriger dan je zegt, dat had je zo zelf kunnen testen.
code:
1
2
3
4
| for (int i=0;i<1000;i++)
{
System.out.println(new Date().getTime());
} |
Levert zoiets op bij mij:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 1009884881453
1009884881453
1009884881468
1009884881468
...
1009884881468
1009884881468
1009884881484
1009884881484
...
1009884881484
1009884881484
1009884881500
1009884881500 |
Lijkt een nauwkeurigheid van ongeveer 16ms te zijn, en dat is meer dan die 18.2Hz.
(de precieze resolutie is overigens OS/JVM specifiek
lijkt me... <- is zeker zo, onder Linux is ie bij mij gewoon op de milliseconde nauwkeurig)