Messen von Elementaren Operationen

Gizemli_Kiz

Neues Mitglied
Diese Übungsserie beschäftigt sich mit den Inhalten der VL über Komplexitätsabschätzung und Datenstrukturen.

Aufgabe 1: Messumgebung zur Laufzeitbeurteilung
Ziel dieser Aufgabe ist es, eine Codegerüst zu entwickeln mit dessen Hilfe Sie bei späteren Aufgaben in der Lage, Laufzeit-analysen von Anwendungen zu erstellen.
Der Code für die Laufzeitanalyse soll in der main Methode stehen um Verfälschungen der Laufzeiten durch Methodenaufrufe zu vermeiden.
Die zu erstellende Testsuite soll folgende Eigenschaften erfüllen:
- Sie soll innerhalb einer Schleife später beliebigen Code ausführen können. Die Anzahl der Schleifendurchläufe soll später variiert werden können (10.000 – 10.000.000.000).
- Die Laufzeit dieses Codes soll gemessen werden. Zur Zeitmessung kann System.currentTimeMillis() verwendet werden.
- Die Schleife die den Programmcode später 10.000 bis 10.000.000.000 ausführt soll insgesamt 10mal wiederholt werden. Bei jedem Durchlauf wird die Zeit gemessen und in einem Array abgespeichert.
- Anschließend soll die durchschnittliche Zeit ausgegeben werden, die jeder Durchgang benötigt hat.
- Die Ausgabe der Testsuite soll aussehen wie im Folgenden abgebildet:

Aufgabe 2: Festlegen der Messbedingungen
Überlegen Sie sich ca. 3-5 Stichpunkte zu folgenden Fragen:
- Welche Faktoren können die Ausführungsgeschwindigkeit der Testumgebung beeinflussen?
- Welche Bedingungen müssen Sie auf ihrem Rechner schaffen um möglichst aussagekräftige Ergebnisse zu erhal-ten?
- Experimentieren Sie an ihrem Rechner, ob/wie Sie die Ausführungsgeschwindigkeit der Programms beeinflussen können.

Aufgabe 3: Messen von elementaren Operationen
Nun können Sie damit beginnen, Code in die innerste Schleife ihrer Testsuite zu schreiben. Überlegen Sie sich elementare Operationen (z.B. Wertzuweisungen) und schreiben Sie den entsprechenden Code. Variieren Sie nun den Wert für die Durch-läufe der inneren Schleife (ca im Bereich von 100.000 bis 10.000.000.000) und tragen Sie die gemessenen Werte in ein Messprotokoll ein, welches z.B. wie folgt aussehen kann(!) :
 

Gizemli_Kiz

Neues Mitglied
Diese Übungsserie beschäftigt sich mit den Inhalten der VL über Komplexitätsabschätzung und Datenstrukturen.

Aufgabe 1: Messumgebung zur Laufzeitbeurteilung
Ziel dieser Aufgabe ist es, eine Codegerüst zu entwickeln mit dessen Hilfe Sie bei späteren Aufgaben in der Lage, Laufzeit-analysen von Anwendungen zu erstellen.
Der Code für die Laufzeitanalyse soll in der main Methode stehen um Verfälschungen der Laufzeiten durch Methodenaufrufe zu vermeiden.
Die zu erstellende Testsuite soll folgende Eigenschaften erfüllen:
- Sie soll innerhalb einer Schleife später beliebigen Code ausführen können. Die Anzahl der Schleifendurchläufe soll später variiert werden können (10.000 – 10.000.000.000).
- Die Laufzeit dieses Codes soll gemessen werden. Zur Zeitmessung kann System.currentTimeMillis() verwendet werden.
- Die Schleife die den Programmcode später 10.000 bis 10.000.000.000 ausführt soll insgesamt 10mal wiederholt werden. Bei jedem Durchlauf wird die Zeit gemessen und in einem Array abgespeichert.
- Anschließend soll die durchschnittliche Zeit ausgegeben werden, die jeder Durchgang benötigt hat.
- Die Ausgabe der Testsuite soll aussehen wie im Folgenden abgebildet:

Aufgabe 2: Festlegen der Messbedingungen
Überlegen Sie sich ca. 3-5 Stichpunkte zu folgenden Fragen:
- Welche Faktoren können die Ausführungsgeschwindigkeit der Testumgebung beeinflussen?
- Welche Bedingungen müssen Sie auf ihrem Rechner schaffen um möglichst aussagekräftige Ergebnisse zu erhal-ten?
- Experimentieren Sie an ihrem Rechner, ob/wie Sie die Ausführungsgeschwindigkeit der Programms beeinflussen können.

Aufgabe 3: Messen von elementaren Operationen
Nun können Sie damit beginnen, Code in die innerste Schleife ihrer Testsuite zu schreiben. Überlegen Sie sich elementare Operationen (z.B. Wertzuweisungen) und schreiben Sie den entsprechenden Code. Variieren Sie nun den Wert für die Durch-läufe der inneren Schleife (ca im Bereich von 100.000 bis 10.000.000.000) und tragen Sie die gemessenen Werte in ein Messprotokoll ein, welches z.B. wie folgt aussehen kann(!) :
- Was können Sie bei den Messungen feststellen?
- Trifft das ein, was Sie erwarten würden?
- Können Sie näherungsweise die Ausführungszeiten zu bestimmten Operationen ermitteln?

Aufgabe 4: Archivieren Sie ihre Testsuite
Sie werden ihre Testsuite in den späteren Übungen noch häufiger brauchen um Algorithmen und deren Optimierung zu be-werten.

Aufgabe 5: Verkettete Listen
Im Moodle finden Sie die Klassen die Dateien ImprovedLists.java und ImprovedListsTestProgram.java . Hier finden Sie die Implementierung für verkettete Listen. Arbeiten Sie sich in den Quellcode ein.
- Implementieren Sie eine Methode um ein Element in einer verketteten Liste zu finden.
- Implementieren Sie eine Methode um die Häufigkeit des Auftretens eines Elements in der verketteten Liste zu be-stimmen.
- Implementieren Sie eine Methode zum Löschen eines Elements in einer verketteten Liste.
 

irgendjemand

Top Contributor
schade das hier mal wieder der "DELETE" button betätigt wurde ... hätte mir gerne den gelöschten post durchgelesen ... aber ich vermute es stand sowas in der art drin :

@TO
wir sind hier weder dafür da deine hausaufgabe zu machen noch dir irgendwelche basics beizubringen ...
einfach herkommen ... und ein aufgabenblatt abschreiben *und selbst dabei fehler machen* fällt hier aus ...

auch für dich noch ein mal lang und breit :

Wofür ist java-forum.org da ?
in erster linie um jedem der eine frage bezüglich java hat versuchen zu helfen
jedoch gibt es beim "helfen" einige regeln wobei geholfen wird :
1) selbstständig GooGLe und SuFu nutzen
2) in der FAQ suchen : http://www.java-forum.org/java-faq-beitraege/8431-ubersicht-faq.html
3) konkrete frage stellen
4) vollständige fehlermeldungen posten
5) falls nötig betreffenen code und falls möglich ein beispiel mit dem der fehler reproduzierbar ist post

Wofür java-forum.org NICHT da ist
1) anfänger und umsteigern aus anderen sprachen basics beibringen
2) hausaufgaben für schüler/studenten/etc erledigen
3) lern-unwillige in jedem thread auf google , sufu , etc erneut hinweisen


falls du JETZT noch eine konkrete frage hast kannst du diese gerne stellen ... aber bitte erst nach dem du die oberen 5 punkte erledigt hast ... VORHER NICHT !

*ja sry guys ... ich konnte mir den post jetzt einfach nicht verkneifen ... aber wenn man solche threads schon nicht closed kann man wenigstens auf unsere allgemeinen spielregeln hier hinweisen*
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java-Performance messen Java Basics - Anfänger-Themen 1
hello_autumn Zeit messen von ausgeführten Tools. Java Basics - Anfänger-Themen 1
D Sortieralgorithmus mit Systemzeit messen Java Basics - Anfänger-Themen 7
T String länge messen in mm Java Basics - Anfänger-Themen 1
X Bildabschnitt anhand der Farbe und messen Java Basics - Anfänger-Themen 4
S Laufzeit bei rekursiver Methode messen Java Basics - Anfänger-Themen 6
H Netzwerktraffic messen Java Basics - Anfänger-Themen 1
D Zeit messen Java Basics - Anfänger-Themen 7
T Zeigerposition auf Grafik messen? Java Basics - Anfänger-Themen 5
S Zeit messen! Java Basics - Anfänger-Themen 12
M Elementaren Algorithmen Java Basics - Anfänger-Themen 2
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
J Listen Operationen Java Basics - Anfänger-Themen 4
D Algorithmus in Pseudocode mit log2(n) Operationen erstellen Java Basics - Anfänger-Themen 3
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Warum muss ich die operationen mit AffineTransform in umgekehrter Reihenfolge ausfuehren..? Java Basics - Anfänger-Themen 4
B Matrizen Operationen Java Basics - Anfänger-Themen 7
S NaN - Operationen ohne Fehler? Java Basics - Anfänger-Themen 3
B AffineTransform - Reihenfolge der Operationen Java Basics - Anfänger-Themen 3
S Liste von möglichen Operationen Java Basics - Anfänger-Themen 2
B genaue Anzahl der Operationen in Schleifen Java Basics - Anfänger-Themen 5
C Operationen auf Bitebene und Verschiebeoperatoren wichtig? Java Basics - Anfänger-Themen 26
Haave Postfix-Rechner: mehrere math. Operationen nacheinander ausführen Java Basics - Anfänger-Themen 8
M Bit/Byte Operationen Java Java Basics - Anfänger-Themen 8
B math. Operationen + Ausgabe Fehler :S Java Basics - Anfänger-Themen 5
K println - Klammern von Operationen Java Basics - Anfänger-Themen 4
O Operationen auf ein Set Java Basics - Anfänger-Themen 3
Q mathematische Operationen als Methode und nicht Infix-Operator Java Basics - Anfänger-Themen 14
X Zählen von arithmetischen Operationen und Vergleichsoperationen Java Basics - Anfänger-Themen 7
R Kommandozeile Operationen Java Basics - Anfänger-Themen 3
G Strings Operationen Java Basics - Anfänger-Themen 7
G String-Operationen Java Basics - Anfänger-Themen 6
F Operationen mit Zeichenketten Java Basics - Anfänger-Themen 8
ven000m Aritmethische Operationen Java Basics - Anfänger-Themen 7
S Stack-Operationen Java Basics - Anfänger-Themen 59

Ähnliche Java Themen

Neue Themen


Oben