Personally I prefer vips[0]. The CLI interface makes more sense to me than ImageMagick's and vips is automatically multi-threaded, so it runs fast and uses little RAM especially on large images.
It depends on your use case. If you're doing relatively straightforward image processing, e.g. resizing on the fly, absolutely Vips is amazing. Check out imgproxy, imaginary, etc.
But for more complex workloads like producing product mockups from incoming user images where you have multiple layers, blend modes, perspective warps, etc. ImageMagick is surprisingly good. We use IM for complex mockups where the inital design is created by a designer in Photoshop - we reproduce all the layer effects in ImageMagick so that it can run server-side with user uploaded images. Works great.
Thanks for sharing. It seems the low ram usage is because the developers specifically care about it and only process each input file in chunks rather than preload it in its entirety and even provide options to monitor ram usage; typically multithreading or otherwise adding parallel processing to a pipeline rather increases ram usage rather than is a reason for it to decrease.
[0]: https://libvips.github.io/libvips/API/current/using-cli.html