当前,我正在从iphone X传输图像和深度数据,并使用计算金属内核对其进行一系列计算。每个周期(帧)的输出大约为900,000浮点数。假设每秒有30个循环(帧),则表示每秒有2700万个浮点数。
我想将此数据保存几(3-5)秒到一个文件中,以便以后使用。
我当前的每个周期写入输出的方法太慢(I / O昂贵),而且我不确定如何正确缓冲几个周期的结果(我尝试创建一个数组数组,然后运行到内存中问题)。
从mtl缓冲区复制数据:
lastRefresh = driver.execute_script("return window.lastRefresh")
writeToFile:
//number of elements per frame approx 300,000
size_t len = elementCount
finalArrayX = new float [len];
finalArrayY = new float [len];
finalArrayZ = new float [len];
//MTLBuffers
finalArrayX = (float*) resultsBufferX.contents;
finalArrayY = (float*) resultsBufferY.contents;
finalArrayZ = (float*) resultsBufferZ.contents;
writeToFile(finalArrayX, finalArrayY, finalArrayZ)
最好的方法是什么?