The existing answer appears largely out of date.
According to Chrome's Blob Storage System Design:
Blob Storage Limits
We calculate the storage limits here.
In-Memory Storage Limit
- If the architecture is x64 and NOT ChromeOS or Android:
2GB
- Otherwise:
total_physical_memory / 5
Disk Storage Limit
- If ChromeOS:
disk_size / 2
- If Android:
disk_size / 20
- Else:
disk_size / 10
Note: ChromeOS's disk is part of the user partition, which is separate from the system partition.
Minimum Disk Availability
We limit our disk limit to accomidate a minimum disk availability. The equation we use is:
min_disk_availability = in_memory_limit * 2
Example Limits
(All sizes in GB)
Device | Ram | In-Memory Limit | Disk | Disk Limit | Min Disk Availability
----------------+-----+-----------------+------+------------+----------------------
Cast | 0.5 | 0.1 | 0 | 0 | 0
Android Minimal | 0.5 | 0.1 | 8 | 0.4 | 0.2
Android Fat | 2 | 0.4 | 32 | 1.5 | 0.8
CrOS | 2 | 0.4 | 8 | 4 | 0.8
Desktop 32 | 3 | 0.6 | 500 | 50 | 1.2
Desktop 64 | 4 | 2 | 500 | 50 | 4
To clarify, disk_size
is apparently the total disk size, not the available disk space (probably for privacy reasons, but seems like that could cause problems).
Chrome uses a directory called blob_storage
in the Chrome profile directory to store blob parts to disk.
I'm not sure if or how some other limits are imposed if available disk space or available RAM are less than the software limits. I'll update this answer when I know more.
Opera (44+ or perhaps earlier):
Same as Chrome, as it is based on Chromium.
Firefox (53+ or perhaps earlier):
No apparent hard limit. I am able to create Blob's significantly larger than the "800 MiB" FileSaver.js claims. It does not use disk space to back larger blobs, so it all goes in memory, potentially with the operating system paging memory to disk. This means that blobs larger than memory may be possible, though likely with bad performance.
Safari (10.1+ or perhaps earlier):
No apparent hard limit. It does not use disk space to back larger blobs, so it all goes in memory, potentially with the operating system paging memory to disk. This means that blobs larger than memory may be possible, though likely with bad performance.
Other browser limits will be added as I learn them.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…