Java/Timing
From charlesreid1
If you want an extremely detailed picture of how much time you're spending in the various parts of your code, you can use a profiler: see Java/Profiling
Contents
Basic Timing in Java: Builtin Methods
If you just want to see how much time a piece of code takes to execute, you can use Java's built in time functionality:
long start = System.nanoTime(); doStuff(); long end = System.nanoTime(); long duration = end - start; System.out.printf("Elapsed time: %03f s\n", duration/1E9);
Timing Snippets of Code
Can make a Stopwatch class that does the following:
- Constructor creates a new "start" variable - the stopwatch class measures time starting at its own creation
- Can call elapsed() method to get elapsed seconds
Via http://introcs.cs.princeton.edu/java/32class/Stopwatch.java.html
public class Stopwatch { public Stopwatch() { this.start = System.currentTimeMillis(); } public double elapsed() { this.end = System.currentTimeMillis(); return (end-start)/1000.0; } }
Comparing Hombrew Data Containers to Java Collections API
In the Java repository (link) in the lists/linked-lists folder (link), there is a timing script (link) that demonstrates a simple comparison of the built-in linked list type to a trimmed down generic TLinkedList type (link).
See Linked Lists/Java/Timing for a timing comparison of the Collections Linked List type and a hand-rolled, generic Linked List type.
Demonstrations of the O(1) behavior of adding, and randomly adding/removing, using a linked list.