On Thursday, 3 May 2012 at 14:41:20 UTC, Vidar Wahlberg wrote:
I tried those two as well. Still significantly slower than what I can achieve in Java.

You might want to post your code... I wrote this code in D:
-=-=-=-

import std.random, std.stdio, std.datetime;

void main() {
        int[] arr = new int[5_000_000];
    foreach(i, ref e; arr)
        e = i;

    StopWatch sw = AutoStart.yes;
    arr.randomShuffle();
    sw.stop();

    writeln("Took ", sw.peek().to!("msecs", double)(), "ms");
}

-=-=-=-

And it performed _identically_ to this in Java:

-=-=-=-

import java.util.ArrayList;
import java.util.Collections;

public class Main {
        public static void main(String[] args) {
                ArrayList<Integer> ints = new ArrayList<>(5000);
                for(int i = 0; i < 5_000_000; ++i)
                        ints.add(i);

                long startTime = System.currentTimeMillis();
                Collections.shuffle(ints);
                long endTime = System.currentTimeMillis();

                System.out.println("Took " + (endTime - startTime) + "ms");
        }
}

-=-=-=-

Reply via email to