I am reading a binary file with a structure. Matlab takes long and I wanted to run Julia for speed improvement. It reads camera frames, each with certain bytesize and each frame consisting of parameters of certain byte size and Type.
frames: is declared Int64 and runs from 1:frames PACKSIZE is declared Int64 and is constant key_ind is Int16 and is a vector. This denotes the parameters which defines the frames. There are 200 but I am only interested in 3. Type declared Type as: 1x3 Array of Int16, Int16, Float64... Num as Int64 and 3x1 elements and each is 1. This says that there are only 1 elements of each Type in a frame. This is where I want to store the data... dCell = 3x1 Array{Any,2} of Array{Int16}(1xframes) Array{Int16}(1xframes) and Array{Float64}(1xframes) each camera frame is of PACKSIZE in bytes. To summarize I have declared the type of each variable before I start the read process. #Read and assemble the data structured as series of Int16,Int16,Float64... for j=1:length(frames); Pos = frames[j]*PACKSIZE ; for k=1:size(key_ind,1) seek(fid,Pos[k]); value = read(ifov_fid, Type[k][1],Num[k]); #Num[k] is all ones. dCell[k][:,j]=value; end end For 500,000 frames it takes as much time as Matlab. Not getting warnings or errors but would like to know how to improve the code for speed or efficiency. I am not familiar with binary read and was wondering if this is 'normal' and one cannot do any better? If I were to write this in C would it also take the same amount (maybe because of my sloppy code)? I should perhaps give details on the processor I use but because I am only comparing Matlab with Julia - and I am not doing any parallelization - I think that OS details are not important? In the Matlab code I am declaring few variables types but not being very careful as I am in with Julia. I am not reading the entire structure i.e., key_ind =1:3 of 200, each with different byte size. Therefore, I am not providing @time but if curious it is ~30-45 seconds for 500000 frames. The inner for-loop takes about ~0.00007 seconds. Thanks