Every time the autocmd is sourced it is added to the autocmd list. So you might be sourcing your vimrc thousands of times when you save because everytime you source you add the autocmd to the list. (You can see that the autocmd is added multiple time by doing :au bufwritepost)
To fix this you just need to wrap the autocmd in a augroup and clear the group when it is loaded.
augroup NAME_OF_GROUP
autocmd!
autocmd bufwritepost .vimrc source $MYVIMRC
augroup end
The autocmd! removes all autocmds from the group.
Help pages to read :h autocmd-define and :h autocmd-groups