I am doing below in a loop with dims = [1024 768 256]
1. I want to read a set of block loaded by block_iter(1 to 16) into a RAM of Hardware. The memory call seems to display the memory leaking. Am I doing it wrong somewhere?
// Create memory for reading in data mxArray *B= mxCreateNumericArray(3,dims,mxUINT8_CLASS,mxREAL); mxArray *in = mxCreateDoubleMatrix(1, 1, mxREAL);// See Memory usage mexCallMATLAB(0,NULL,0,NULL,"memory"); memcpy(mxGetPr(in), &block_iter, sizeof(double)*1*1);// Read a block of 256 images of 1024*768. Even the temp variable is cleared in the dmd_feeder function mexCallMATLAB(1,&B,1,&in,"data_feeder");//Call RAM_FILL ram_fill(d,B); // As of now does nothing, its an empty void function and I would be replacing it to copy data to ram of hardware.//Deallocate memory; mxDestroyArray(B); mxDestroyArray(in);
PS: The memory leak is around 192 MB each loop which is exactly the amount of data in array B
Best Answer