Java Yeet

Run Settings
LanguageJava
Language Version
Run Command
import java.text.MessageFormat; interface Fn { void invoke(); } class Sample { public Sample(final long original, final long improved) { this.original = original; this.improved = improved; } public final long original; public final long improved; public static Sample create(final Fn original, final Fn improved, final int size) { final long a = System.nanoTime(); for (int i = 0; i < size; i++) { original.invoke(); } final long b = System.nanoTime(); for (int i = 0; i < size; i++) { improved.invoke(); } final long c = System.nanoTime(); return new Sample(b - a, c - b); } public static Sample[] createMany(final Fn original, final Fn improved, final int size, final int count) { final Sample[] samples = new Sample[count]; for (int i = 0; i < count; i++) { samples[i] = create(original, improved, size); } return samples; } } class Average { public Average(final Sample[] samples) { long original = 0; long improved = 0; for (int i = 0; i < samples.length; i++) { original += samples[i].original; improved += samples[i].improved; } this.original = original / samples.length; this.improved = improved / samples.length; } public final long original; public final long improved; public String format() { return MessageFormat.format("Original took {0}ms, improved took {1}ms (per sample).", this.original / 1000d, this.improved / 1000d); } public void print() { System.out.println(this.format()); } } class Main { public static void main(String[] args) { new Average(Sample.createMany(() -> { }, () -> { for (int i = 0; i < 1000; i++) {} }, 5, 500_000)).print(); } }
Editor Settings
Theme
Key bindings
Full width
Lines