Check if data has changed or always set `needsUpdate=true`

When updating a BufferGeometry with new position, color, or index BufferAttributes is it faster/more memory efficient to check if the new data being set has changed and use that to determine whether to set needsUpdate = true or to just always set needsUpdate = true whenever there might be a change to the BufferAttribute (ie not check). Just wondering what the tradeoffs and considerations are for setting needsUpdate = true more liberally or conservatively.

Ultimately it depends on whether it takes more time to manually check the data than to re-upload it all to the GPU. It would be best to measure that, but I would guess it’s slower to check all vertices against a reference than to upload. If you find you’re updating vertex attributes very often, or for large vertex buffers, you may find that both options are too slow and you need to actually measure precisely what has changed.