Link to the thread: https://programming.dev/post/8969747
Hello everyone, I’ve followed this thread yesterday and noticed a few very negative reactions towards the choice of Java. I follow Java evolution from far away, but it seemed like it was evolving in a good direction since the last few years, and that performance-wise it would make sense for the back-end of a Lemmy-like platform.
Is it indeed the case? I was just curious to see that much negativity towards one of the most popular languages.
That’s a bad apples-to-oranges comparison,
unique_ptr
frees memory upon destruction, which with the raw pointer version you don’t do. The least you could do is use rvalue references. The class layout ofunique_ptr
is also hard to optimize away (unless via LTO) becauseconsume
isn’t in the same translation unit and the compiler has to let your binary be ABI compatible with the rest of your binaries. (Also, you’re using Clang 9 by the way, we are at version 17 now)This is much fairer: https://godbolt.org/z/v4PYcd8hf
Then, if you additionally make the functions’ bodies accessible to the compiler and add a
free
to the raw pointer version (for fairness if you insist to haveconsume
orfoo
destroy the resource), you should get an almost identical assembly code (with still an extra indirection that you’ll see in an extramov
due to the fact that the C++ compiler still doesn’t see how you use them, but IMO that should still be a textbook case for LTO), and the non-zero difference should disappear altogether once you actually use those functions and if it doesn’t you absolutely should file a bug report.Carruth, while an excellent presenter, has been on a “C++ standard committee bad, why don’t we do more ABI-breaking changes, y’all suck, Abseil and Carbon rule” rant spree, with that basically materialized by Google stopping active participation in Clang (haven’t followed the drama since then so not sure if Google backtracked on that decision), and it’s hard to consider him to be objective about this since he also has the Carbon project and his recent Carbon talks are painful to watch as it’s hard to ignore how he’s going from a “C++ optimization chad” that he used to be to a Google marketing/sales person.