Code :
	generateElements();
 
	//apparently this takes 8ms
 
	glBufferSubData(GL_ARRAY_BUFFER, 0, vertexBuffer.size() * sizeof(vertexBuffer[0]), vertexBuffer.data());
	glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, elementBuffer.size() * sizeof(elementBuffer[0]), elementBuffer.data());
 
	glDrawElements(GL_TRIANGLES, vertexCount / 4 * 6, GL_UNSIGNED_INT, 0);
 
	vertexBuffer.clear();
	elementBuffer.clear();
	vertexCount = 0;

The function above normally takes < 2 ms to execute. However, it will jump to 8-30 ms about once every 2 seconds. I do not believe I have any poorly written code in the function, yet I cannot figure out why it is spiking. OpenGL 3.3 on Windows 8, Visual Studio 2013.