ImageRecordIter vs RecordFileDataset + gluon Dataloader

Is there any differences using mxnet ImageRecordIter and the RecordFileDataset + gluon Dataloader. What I observed is that the latter is much slower and uses much more io and RAM compared to the latter. Is this behaviour expected? If so, any ways to improve it?