Možná vysvětlení:
-
Java nedělá nic, zatímco Oracle počítá prvních 1000 řádků místo prvních 10.
-
Oracle nedělá nic, zatímco Java počítá posledních 1000 řádků místo posledních 10.
-
Komunikační protokoly (např. TCP/IP) hodně čekají a pak musí zpracovávat více dat najednou, ale špičkový přenos dat bude omezen hardwarovými limity . Tomu brání režie protokolu, takže by měla existovat optimální velikost načítání a cokoliv menšího nebo většího by bylo pomalejší;))
-
Bylo by horší, kdyby byl proces načítání synchronní s jiným kódem Java, takže Java žádá o další řádky až po zpracování předchozích dat a Oracle mezitím nic nedělá.
Představte si, že jsou 3 lidé:
- První přehne papír A4 napůl
- Druhý přenáší stohy složeného papíru z jedné místnosti do druhé
- 3. vyřízne nějaký tvar ze složeného papíru.
Jak velké by měly být stacky, když 1. musí čekat, až se vrátí 2. a 2. musí čekat, až 3. dokončí svou práci?
Myslím, že stacky 1000 nebudou lepší než stacky 10;))