Memory Usage in multiple New Formats

Hi,
there are now, multiple ways of loading an anndata object. I will list some: read_h5ad, read_h5ad(backed=‘r’), read_zarr, read_lazy (in the experimental branch). I am having a difficult time to understand the difference between ‘backed’ and read_lazy.
Can you give me a comparison of how these methods are using memory when doing the following operations:
1) adata = ad.read_xx(file)
2) subset = adata[:100].copy()

I am looking for some description like: For read_h5ad(), during 1) the entire object is loaded into memory, during 2) a copy is created in which memory is allocated according to the number of observations. At the end of the instructions, memory will have an entire copy of anndata and 100 cells of the data.

Best!