The crc parameter in AssetBundle.LoadFromFile will read all bytes at load time?

If I pass the crc parameter to the AssetBundle.LoadFromFile, will it read all bytes to calculate whether the crc is match.

Even the worse, the documents say the crc is for the uncompressed content. It need to decompress the asset bundle if it need check the crc at loading time. But if no crc check, I think it onlly read the file header. The the read content data of asset bundle will delay until load object from this asset bundle.

So if I pass the crc to the AssetBundle.LoadFromFile, will cause more IO and decompress payload and slow down the loading time?

Yes, the only way to calculate the CRC is to read all of the bytes from the file. However, this is done block-by-block into a 32k buffer, so you’re not paying a big memory penalty for it. The CPU cost is low - the CRC function is really simple. I/O is the main cost.