Profiler.GetRuntimeMemorySize returns different size for meshes with same vertex count

I have bunch of meshes filled by same function and they all have same vertex/triangle count and vertex layout is the same. Why would Profiler.GetRuntimeMemorySize report different size for some of the meshes? Most of the meshes have size 369284, but some 184916. Any ideas why?

BTW.: if I calculate memory usage myself I get 184352:

sizeof(postion + normal + uv) * vertexCount + sizeof(short) * indexCount, i.e.
sizeof(float) *  (3 + 3 + 2)  * vertexCount + sizeof(short) * indexCount

so it looks like for some meshes the memory is doubled and for some it is not. Why?

I noticed that the size is related to whether the mesh has been renderer (is it culled or not). Once you move meshes to screen they double their size. So I guess at first it only calculates memory in RAM and then adds VRAM.