#prog #cpp #article
An informal comparison of the three major implementations of std::string
(GCC, MSVC и clang)
Все три варианта поддерживают SSO, но по разному этого достигают.
(thanks @itpgchannel)
An informal comparison of the three major implementations of std::string
(GCC, MSVC и clang)
Все три варианта поддерживают SSO, но по разному этого достигают.
(thanks @itpgchannel)
Microsoft News
An informal comparison of the three major implementations of std::string
Pros and cons.
🔥5👍1
Forwarded from commit -m "better"
#llvmweekly
https://c3.handmade.network/blog/p/8852-how_bad_is_llvm_really
TL;DR - медленно, семантика промежуточного представления (над которым производятся оптимизации) заточены на С/С++, и сделать иначе - невозможно. Ну, например, деление на 0 в LLVM - UB, а какой-то "другой" язык хочет уметь это обрабатывать. В итоге, LLVM навязывает некоторую семантику любому языку, которые хочет его использовать. Например, бесконечный цикл в rust, который некорретно оптимизировался llvm - https://github.com/rust-lang/rust/issues/28728
Зато много готовых оптимизаций из коробки.
Так же автор (очень справедливо!) вопрошает, какого хрена в коде LLVM не используются арены и пулы, везде, налево, и направо, потому что основные причины тормозов LLVM - это деревянные структуры без data locality.
У автора замена аллокатора для LLVM на mimalloc дает хороший буст в скорости (+10%).
Я систематически бенчил clang с разными аллокаторами, и остановился на tcmalloc от Google, по скорости тот же mim, но в пике жрет прямо существенно меньше памяти.
Неутешительный вывод такой - начинать разработку компилятора стоит с LLVM, а вот дальше есть варианты.
https://c3.handmade.network/blog/p/8852-how_bad_is_llvm_really
TL;DR - медленно, семантика промежуточного представления (над которым производятся оптимизации) заточены на С/С++, и сделать иначе - невозможно. Ну, например, деление на 0 в LLVM - UB, а какой-то "другой" язык хочет уметь это обрабатывать. В итоге, LLVM навязывает некоторую семантику любому языку, которые хочет его использовать. Например, бесконечный цикл в rust, который некорретно оптимизировался llvm - https://github.com/rust-lang/rust/issues/28728
Зато много готовых оптимизаций из коробки.
Так же автор (очень справедливо!) вопрошает, какого хрена в коде LLVM не используются арены и пулы, везде, налево, и направо, потому что основные причины тормозов LLVM - это деревянные структуры без data locality.
У автора замена аллокатора для LLVM на mimalloc дает хороший буст в скорости (+10%).
Я систематически бенчил clang с разными аллокаторами, и остановился на tcmalloc от Google, по скорости тот же mim, но в пике жрет прямо существенно меньше памяти.
Неутешительный вывод такой - начинать разработку компилятора стоит с LLVM, а вот дальше есть варианты.
Handmade Network
How bad is LLVM really?
LLVM used to be hailed as a great thing, but with language projects such as Rust, Zig and others c…
👍5
#prog #моё #article #outoflinestorage
В этот раз я написал слишком крупный для телеги пост — тут он занял бы семь сообщений. Поэтому держите ссылку наcold storage репозиторий для подобных текстов Блог*а:
Почему свойства (property) в языках программирования — это плохая идея
В этот раз я написал слишком крупный для телеги пост — тут он занял бы семь сообщений. Поэтому держите ссылку на
Почему свойства (property) в языках программирования — это плохая идея
❤🔥6💯6🤡5🔥2🥴2💩1🤝1
#prog #cpp #article
Fun with flat_map’s non-explicit constructors
TL;DR: в коде ниже вызываются три разных конструктора
Fun with flat_map’s non-explicit constructors
TL;DR: в коде ниже вызываются три разных конструктора
flat_map
:void print_map(std::flat_map<int, int>);
print_map({ {1, 2, 3}, {10, 20, 30} });
print_map({ {1, 2}, {10, 20} });
print_map({ {1}, {10} });
print_map({ {}, {} })
😁8🤮5🤯2🤡1
Если вашу (или чью-то ещё) задницу сравнивают с персиком — помните, что у персика на кожице волоски
🤡10🌚6🖕5🤮1💩1
Одна из вещей, которая меня удивила вскоре после прилёта в Армению — в магазинах газировки продают в том числе и в бутылках даже не по треть, а по четверть литра. Я их часто видел в заведениях общепита. Интересно, кто ещё такое покупает
🤮3💩2🤡1