Thank you for your comments.
The argument here is not that one cannot write memory-safe programs in C/C++, but rather that Rust is inherently memory safe because the guarantees are checked at compile time, unlike the former, where you use certain methods to implement memory safety, without which, yet again, the program has potential to be memory unsafe.
No, we did not profile per se, and I'll make an admission here; I had joined the firm as a fresher, straight out of campus, so most of the technical decisions had to be accepted by the dev team as gospel, and the performance was tuned with intuition generally (which is no longer the case).
Over time, our code has become much faster compared to the initial iterations even in Rust. Though I can confirm that we did have a lot of compute involved, because at the heart of our code, we read and decode parquet files. Parquet being a condensed data format, takes a lot of computation in decoding, and for instance, a parquet file of a few MBs in size can inflate numerous times when converted to JSON (which is just one of the several things that we did).