+1 what @roymacdonald said.
I've got an example of pretty much what you are trying to do here:
One simple optimisation is to keep the mesh around as a member variable and .clear() it before adding all the vertices.
Another is to only add the vertices and triangles indices once in setup() and then just move them in your update loop.
Some more noise examples here:
https://github.com/andreasmuller/NoiseWorkshop