Hey Greg, I've got someone who calls himself McJty who claims that the markDirty() function actually does a lot more than 'something only used by Comparators' and its removal shouldn't cause a memory improvement. Allegedly that function is intended to flag chunks to be re-saved to disk so that the TileEntity data doesn't get lost. (So overriding it to null would cause issues with TEs not getting saved)
* For tile entities, ensures the chunk containing the tile entity is saved to disk later - the game won't think it
* hasn't changed and skip it.
public void markDirty()
Edit: One of the EnderIO devs also chimed in to say that 1, markDirty() does two jobs (one, set the dirty chunk flag; two, tell nearby blocks that something changed), and 2, migrating from 1.7 to 1.10, he had issues with TEs that didn't call markDirty() not getting saved, so he thinks the 1.7 'saving without markDirty()' was likely a bug in 1.7