#libstdc

GripNewsGripNews
2024-08-18

🌘 「noexcept」影響libstdc++的unordered_set - Arthur O'Dwyer - 主要關於C++的東西
➤ 哈希式關聯容器中的noexcept對性能的影響
quuxplusone.github.io/blog/202
在GNU libstdc++的哈希式關聯容器中,添加或刪除noexcept可能會改變程序的性能。在C++中,std::unordered_set基本上是一個“桶”的向量,其中每個桶是一個“節點”的鏈表,每個節點存儲unordered_set的一個元素。根據哈希函數的noexcept性質,這些容器將其節點的結構佈局進行更改。
+ 這是一個很有趣的發現,對於使用libstdc++的開發者來說是一個重要的提示。
+ 我以前從未注意到這個細節,謝謝作者的分享。
++ ++

Найменшенькийbalaraz@social.net.ua
2024-01-05

Ця оптимізація відбувається завдяки, тому що C++, на відміну від Go і Rust, привʼязує свою стандартну бібліотеку динамічно. Через це знижується сумісність бінарних файлів. Зібраний бінарний файл на Arch з використанням GCC 13, на Debian не запускається, тому що у ньому ще досі 12 версія компілятора, відповідно і старіша версія бібліотеки libstdc++.

Мені стало цікаво скільки буде займати місця файл програми коли ми прилінкуємо цю бібліотеку статично. Це можна зробити додавши -static до команди лінкера. Збирати будемо у режимі випуску. Якщо ми привʼяжемо динамічно, то розмір буде 547.664KiB, а якщо статично, то 3.214MiB. Ми можемо зменшити обидва ці файли видаливши з них зайву інформацію за допомоги команди strip з набору binutils. Після цього перший файл буде займати 427.664KiB, а зі статичною бібліотекою 2.581MiB. У другому випадку різниця більш помітна.

Виходить що коли поставити C++ і Go у рівні умови, то по розміру виграє Go через меншу стандартну бібліотеку. А по швидкості виконання все рівно виграє C++. Але їх обох обганяє чистий C.

Також хочу замітити що на бінарний файл мови Go команда strip ніяк не впливає, тобто нічого не видаляє.

#strip #static #libstdc++ #c++ #cpp #binutils #bin #gcc #g++ #link #sof #size #статична #бібліотека #привʼязка #лінкер #лінкування #розмір #бінарники #go

2023-10-07

After the #glibc libc-alpha and #gcc gcc-patches mailinglist tests to avoid From rewriting worked out nicely we enabled the same settings to some other mailinglists.

The other gcc patches lists for #libstdc++, #libgccjit, #fortran and #gcc-rust. And those project that use #patchwork, #newlib, #elfutils, #libabigail and #gdb.

This hopefully makes mailing patches and using git am on them a bit nicer.

Please contact us if you have any issues with the mailinglists.
sourceware.org/mission.html#or

https://purl.org/rzr#rzr
2022-02-05

fosdem.org/2022/schedule/event 3rd presentation for today is starting soon at 15h35 CET:
++ on - using the example of
Experiences with switching from ++ to ++
Join
bero in
devroom and then stay longer in room for Q&A
fosdem.org/2022/schedule/event

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst