|
|
@@ -14,6 +14,24 @@ Die folgenden Informationen sollen helfen, sich schneller in die Materie des
|
|
14
|
14
|
[time]: https://docs.rs/time
|
|
15
|
15
|
[std::mem]: https://doc.rust-lang.org/std/mem/
|
|
16
|
16
|
|
|
|
17
|
+## Warmup für das Programm
|
|
|
18
|
+
|
|
|
19
|
+Es gibt mehrere Möglichkeiten, einem Programm eine höhere Priorität (?) vor anderen Programmen zu geben.
|
|
|
20
|
+
|
|
|
21
|
+Eine Möglichkeit besteht darin, das Programm ein kleines Warmup durchlaufen zu lassen. Dies kann über ein simples Inkrementieren erreicht werden. Bei der Berechnung müssen Sie aber darauf achten, dass der Compiler das Ergebnis nicht vorausberechnen kann. Sonst würde bei der Optimierung der Compiler einfach das Ergebnis ausrechnen und das Ergebnis direkt in den Code schreiben. Damit wäre das Warmup (Durchlaufen des Codes) dahin.
|
|
|
22
|
+
|
|
|
23
|
+Mit einer Parameterübergabe durch die Kommandozeile steht das Ergebnis zur Compile-Zeit nicht fest und somit kann der Code nicht einfach 'weg'-optimiert werden. Dazu ein Beispiel:
|
|
|
24
|
+
|
|
|
25
|
+```Rust
|
|
|
26
|
+//where page_count and jump are cmd arguments
|
|
|
27
|
+let mut a = vec![0i32; page_count * jump];
|
|
|
28
|
+
|
|
|
29
|
+ // warm up
|
|
|
30
|
+ for i in a.iter_mut() {
|
|
|
31
|
+ *i += 1;
|
|
|
32
|
+ }
|
|
|
33
|
+```
|
|
|
34
|
+
|
|
17
|
35
|
## Zeiten lesen in C
|
|
18
|
36
|
|
|
19
|
37
|
Das folgende Kapitel muss zur Lösung von task2 nicht komplett verstanden werden.
|