我有一个非常大集,其中视频几千原始帧顺序被读取并处理二进制文件,现在我期待,因为它似乎是去优化它更多的CPU绑定比I/O限制.
目前正以这种方式阅读框架,我怀疑这是最大的罪魁祸首:
private byte[] frameBuf;
BinaryReader binRead = new BinaryReader(FS);
// Initialize a new buffer of sizeof(frame)
frameBuf = new byte[VARIABLE_BUFFER_SIZE];
//Read sizeof(frame) bytes from the file
frameBuf = binRead.ReadBytes(VARIABLE_BUFFER_SIZE);
Run Code Online (Sandbox Code Playgroud)
难道多大.NET中的差异重新组织的I/O,以避免造成所有每一帧这些新的字节数组的?
我对.NET的内存分配机制的理解很弱,因为我来自纯C/C++背景.我的想法是重新写这个共享包含与框架的实际大小的整数保持跟踪一个非常大的共享缓存静态缓冲区类,但我喜欢目前执行的简单性和可读性,如果宁愿保持CLR已经以某种方式处理这个我不知道的事情.
任何输入都将非常感激.