NDK AAsset_read():推荐的缓冲区大小?
NDK AAsset_read(): Recommended buffer size?
只是想知道这里的最佳选择是什么,因为 NDK docs 中没有提出任何建议。我相当确定虽然 bufSize
是 size_t
类型,但指定 SIZE_MAX
可能不是一个明智的选择!
如果您的文件小(这是主观的,但对我来说小是在 512kb 以下)您可以做的是:
AAsset* file = AAssetManager_open(assetManager, "your/file.ext", AASSET_MODE_BUFFER);
size_t fileLength = AAsset_getLength(file);
char* fileContent = new char[fileLength];
AAsset_read(file, fileContent, fileLength);
它实际上可以处理大得多的文件,直到您的内存分配失败。
如果您打算加载大文件,那么我会按 512kb 的 chunck 读取,但同样,这是主观的,没有硬性限制(直到内存分配失败)
只是想知道这里的最佳选择是什么,因为 NDK docs 中没有提出任何建议。我相当确定虽然 bufSize
是 size_t
类型,但指定 SIZE_MAX
可能不是一个明智的选择!
如果您的文件小(这是主观的,但对我来说小是在 512kb 以下)您可以做的是:
AAsset* file = AAssetManager_open(assetManager, "your/file.ext", AASSET_MODE_BUFFER);
size_t fileLength = AAsset_getLength(file);
char* fileContent = new char[fileLength];
AAsset_read(file, fileContent, fileLength);
它实际上可以处理大得多的文件,直到您的内存分配失败。
如果您打算加载大文件,那么我会按 512kb 的 chunck 读取,但同样,这是主观的,没有硬性限制(直到内存分配失败)