Ten wykład dotyczy tego, czym jest „wąskie gardło” w wejściu/wyjściu oraz jak je wykrywać i usuwać. Wyjaśnimy, dlaczego operacje dysku i sieci są znacznie wolniejsze niż RAM, jakie antywzorce występują najczęściej (czytanie bajt po bajcie przez
read(), synchroniczne logi itp.), jak pomagają bufory (
BufferedInputStream,
BufferedReader), profilery (
VisualVM,
JProfiler) oraz pomiary czasu przez
System.
currentTimeMillis
(). Przeprowadzimy praktyczny eksperyment z odczytem pliku
"bigfile.txt", porównamy szybkość z buforem i bez, spojrzymy na wpływ SSD/HDD i sieci oraz wymienimy typowe błędy.