Java 2 Fragen zur Eclipse Konsole

R

r_

Gast
Hey,

hab 2 kleine "Noob" Fragen zu Eclipse und würde mich sehr freuen wenn ihr mir schnell helfen könntet:

1. Wie kann ich mir in der Konsole die Zeit anzeigen lassen, die Eclipse braucht um das Programm komplett auszuführen?

Würde mich mal interessieren, um verschiedenen funktionierenden Code hinsichtlich der Effizienz zu untersuchen... auch wenn es sicherlich im ms Bereich (oder geringer) ist.

2. Wie kann ich der Konsole eigentlich Parameter übergeben? Eigentlich müsste es bei Run -> Run Configuration -> Arguments gehen, aber ich finde es einfach nicht heraus was eingeben soll wenn ich z.B. 2 ints und einen String übergeben will :(

Das wäre das Fenster:

unbenannt5rkxs.png


Mersi schonmal! :)

Viele Grüße,
 
Zeit messen kannst du selbst mit System.currentMillisecs( ) z.B.
Einfach am Anfang deiner main die Zeit aufnehmen in eine long(?) Variable und am Ende mit System.currentTimeMillis( ) - deineVariable die Dauer ausgeben.

PHP:
// Direkt zu Beginn der main
long time = System.currentTimeMillis( );
....
// Ganz am Ende als letzter Befehl in der main
System.out.println( System.currentTimeMillis( ) - time );

Parameter übergeben müsste eigentlich so funktionieren in dem Fenster.
Gib dir halt mal die Anzahl der Parameter aus und wenn die schonmal stimmt handhabst du die nur falsch.
 
Zuletzt bearbeitet: (falscher Befehl)
Hm, mit deiner Methode kommt immer zu 0 raus.

Entweder ist mein Programm zu kurz oder die Messung zu ungenau :(

Ja, das Fenster stimmt wohl, aber ein Beispiel was man da für 1 String und 2 Ints reinhauen sollte wäre super - habs mehrfach probiert aber bekomme es einfach nicht hin :/

/edit: LOL, habs raus. War einfacher als ich dachte, zu einfach eigentlich. Wollte es immer übers Menu adden :D

Bleibt nur noch der "Benchmark" ^^
 
Zuletzt bearbeitet:
Ja nu, wenn es 0 ausgibt ist das Programm zu kurz und du musst halt etwas anspruchsvolleres machen lassen.
Ist klar, dass ein paar einfache Einzeiler mit Zuweisungen oder Abfragen heutzutage nicht mehr die Welt an Zeit brauchen.

Wenn du das in deine main schreibst solltest du auch eine Zeit ungleich 0 bekommen, ich bekomme 128 heraus:

PHP:
long time = System.currentTimeMillis();
		
for( int i = 0; i < 10000; i++ )
{
     System.out.println( i );
}
		
System.out.println( System.currentTimeMillis() - time );
 
mach halt mal ne große schleife und schau ob dir mehr angezeigt wird.
Ich weiß nicht worauf Java genau zugreift aber wenn man eine ähnliche zeitmessungsfunktion in C aufruft geht die messung nur mit mindestschritten von 16ms.
 
Die Millis in Java sind in Millisekunden Schritten, keine Beschränkung daher.
Kann mir aber ehrlich gesagt auch nicht vorstellen, dass das in C so fest sein soll.

Ist ja ohnehin auch vom Betriebssystem abhängig.
 
Na dann wäre das aber auch die falsche Weise, die verwandte Art in C wäre doch mittels time.h und gettimeofday und dem ganzen Zeug, oder?

Aber wir kommen hier vom Thema ab ;)
 
Jep, mit größeren oder "künstlichen" Schleifen wie oben gehts. Für 0 bis 10000 komme ich auf 232ms, aber die Mühle hier ist auch nicht die schnellste.

Dann hab ich mir wohl zuviel Gedanken um die Optimierung des Codes gemacht, wenn eh immer 0 rauskam :D

Danke für die Hilfe :)
 
Jep, danke für den Vorschlag.

Vor Optimierung des fraglichen Teils 518538 und nach Optimierung 314510 ns (?) :D
 
Zurück
Oben