# Zeit berechnen



## stban (10. Jan 2007)

Hallo,

Ich habe eine Aplikation in Java, es funktioniert und wenn man es startet dann führt bestimmten scripten aus. Mein Problem ist,  wie kann ich diese gesammte ausführung Zeit berechnen.
zB. bei Firefox wenn man etwas runterlädt dann erscheint ein Fenster mit einem ProgressBar , die runtergeladen Bytes und die verbleibende Zeit. So etwas muss ich implementieren. 

Musste ich vielleicht die geschwindigkeit des Prozesors wissen? 
oder nur auf Grund der Dateigrosse die benötigte Zeit abschätzen?

Ich arbeite mit SWT.
Der ProgressBar läuft als eigenständiger Thread.

Ich Bitte um Tipps und Hinweise wie das in Java implementieren kann.

thx
stban


----------



## Gast (10. Jan 2007)

gesamte zeit:

start = jetzt
fertig = jetzt wenn fetig

tot = fertig - start

wo stehe ich in der progreeBar?

tot = alles
wasVerarbeitet = schongemacht

progressInPercent = wasVerarbeitet / tot

so denke ich mal


----------



## stban (10. Jan 2007)

Hallo Gast,

So etwas habe ich schon gemacht. Am Anfang der Arbeit dh. sobald die Aplikation die skripten auffördern zu laufen dann hole anfangsZeit und am Ende ZeiEnde. 


```
long time1 = System.nanoTime();//Zeit Anfang

long time2 = System.nanoTime();//Zeit Ende
```


dann substraiere beide werte um gesammte arbeitszeit zu bekommen. 
Aber dieser Einsatz bring mir nicht viel weil am Anfang der Arbeit muß ich doch wissen wie lange dauert es bis eine Arbeit erledigt wird.

weitere Tipps?
thx
stban


----------



## Gast (10. Jan 2007)

denke das am anfang schon zu wissen wird schwer

schätzen?

task tot = 100;

taksProSek = momentan2

es dauert tot ca = tot / taksProSek ;

und dann weiter:

gemachte tasks = 20;
es dauert noch ca = (tot - gemacht) / taskproSek

vielleicht so?


----------



## Gast (10. Jan 2007)

wird halt bei verschiedenen Task sehr ungenau.
dh. wenn task 1-50 ca 1sek brauchen
und task 50-100 ca 10 sek....

aber grundsätzlich wird so ca funzen


----------



## stban (10. Jan 2007)

Hallo Gast,

genau das ist doch wo ich Problemen habe.
Aber wie machen es bei Firefox oder bei Windows, die zeigen doch solche Sachen die ich in meiner Aplikation einfügen möchte.

Kann ich vielleicht den Board wechseln mit gleichen Thread?
vielleicht bei SWT 

thx
stban


----------



## Der Müde Joe (10. Jan 2007)

Sowohl Firefox als auch Windows sind keine Hellseher

Es ist dir sicher schon aufgefallen, dass die ProgressBAr
ab und zu stehen bleibt und mal schneller und mal langsamer
geht.
Auch bei div DL Programmen ist das so. Die Geschätze DL Zeit ist an den aktuellen DL gekoppelt. Man kann vorher nicht sagen wie lange es dauern wird. 
Da vom 2. Prozess bis zum GAU alles passiern kann 

falls dein Problem mehr anzeigiger Natur ist schau mal unter
http://java.sun.com/docs/books/tutorial/uiswing/components/components.html


----------

