/**
*
*/
package peformance;
import org.gbif.utils.file.FileUtils;
import org.gbif.utils.text.LineComparator;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Comparator;
import java.util.UUID;
/**
* This is just a utility class to test performance of sorting files of IDs.
*/
public class SortTest {
public static void main(String[] args) {
try {
File in = new File("/tmp/unsorted.txt");
File out = new File("/tmp/sorted.txt");
File out2 = new File("/tmp/sorted2.txt");
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(in), "UTF-8"));
int numLines = 1000;
System.out.println("Writing " + numLines + " random UUID lines to sort");
for (int i = 0; i < numLines; i++) {
writer.write(numLines - i + " " + UUID.randomUUID() + "\n");
}
writer.close();
FileUtils utils = new FileUtils();
long time = System.currentTimeMillis();
System.out.println("Sorting " + numLines);
utils.sort(in, out, "UTF-8", 0, "\t", '"', "\n", 0);
System.out.println("Sorted " + numLines + " in " + (System.currentTimeMillis() - time) / 1000 + " secs");
System.out.println("Sorting " + numLines + " in vanilla Java");
Comparator<String> lineComparator = new LineComparator(0, "\t");
time = System.currentTimeMillis();
utils.sortInJava(in, out2, "UTF-8", lineComparator, 1);
System.out.println("Sorted " + numLines + " in " + (System.currentTimeMillis() - time) / 1000 + " secs");
} catch (IOException e) {
e.printStackTrace();
}
}
}