数据处理的两种方式
数据处理方式分为两种:
容器式 (Container/In-Memory) 处理:
-
是什么:先把所有数据一次性加载到内存里(比如一个
byte[]
数组),然后再进行处理。 -
优点:代码简单直接。一旦加载完成,你可以随机访问数据,获取长度等操作都非常快。
-
缺点:消耗内存,且有上限。如果要处理的数据非常大(比如一个 10GB 的电影),而你的程序只有 1GB 内存,那么在加载数据时程序就会因
OutOfMemoryError
而崩溃。
流式 (Streaming) 处理:
-
是什么:数据像水流一样,一部分一部分地流过你的程序。你一次只处理一小段数据,处理完就丢掉,不保留在内存里。
-
优点:内存占用极低。无论要处理的数据是 1KB 还是 100TB,内存占用都只是你那个小缓冲区(比如 8KB)的大小。程序可以处理远超其内存大小的数据。
-
缺点:代码相对复杂一点,需要用循环来读取。不能随机访问,只能顺序处理。