Archive for červen 2009
as-a-service taxonomy
Před časem jsem na tomto blogu zmínil několik “as-a-service” akronymů.
Peter Laird k témuž přistoupil vědečtěji a zkompiloval takřka as-a-service taxonomii (nechybí ani crimeware-as-a-service!). Jen Romanův Maas tam chybí
Java, I/O a performance?
Vezměme si jednoduchý kousek kódu, který po řádcích čte data ze standardního vstupu a bez velkých cirátů je přeposílá na standardní výstup:
import java.io.*;
public class StreamEcho {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (String line = br.readLine(); line != null; line = br.readLine()) {
System.out.println(line);
}
}
}
Teď si vezměme perlový ekvivalent:
#!/usr/bin/perl -w
use strict;
while (<STDIN>) {
print;
}
A nakonec oběma verzemi prožeňte pár GB textových dat (data napřed něčím přečtěte jen tak, ať se v obou případech využívá disková cache). Taky vám perlová verze běží třikrát rychleji? Co s tím?
Aktualizace: podle komentářů důvodem bude hlavně konverze do Unicode a zpět, kterou se perlový kód narozdíl od Javy neobtěžuje (zmínili Zamboch a Petr Holík). Další rozdíl může být v tom, že System.out.println pokaždé provede flush (zmínil podlesh). Díky všem zúčastněným diskutérům!