glBufferData will allocate memory on the GPU (also, as not stated, do you also explicitly delete the old memory that you don't use anymore ?). It will be more fast if you allocate once, and just copy...