which method to use and when to use. well it depends getEntryByKey might be faster provided if you only access only the view data. Again if you use getEntryByKey and then access the document from the entry and and save the document it would be slower when compared to getDocumentByKey.
If you are access the document data and modifying the data inside the document then use getDocumentByKey. This method would be faster.
So if you want to access only the view data then use getEntryByKey and if you want to modify the document content then use getDocumentByKey. Same would be true if you working on collection of documents or view entries.
In case if you want to update collection of documents/entries then stampAll or stampAllMulti method will be fastest.