Есть ли у стандартного C++ ABI реальное снижение производительности?

Я думаю, что каждый профессиональный разработчик C++ знает, как сложно написать общую библиотеку на C++, которая работает в разных компиляторах. Это связано с тем, что C++ (и C) не имеет стандартного ABI. Основной причиной отсутствия ABI является снижение производительности.

Глядя на LLVM и Clang, кажется, что этот миф рушится. Clang и LLVM дают большие возможности для оптимизации производительности.

Так снижает ли стандартизированный C++ ABI (и почему не модульная система) производительность C++?


person Elvis Dukaj    schedule 28.10.2013    source источник
comment
Основной причиной отсутствия ABI является снижение производительности. [нужна цитата]   -  person dyp    schedule 28.10.2013
comment
Что вы видели в llvm и clang, что говорит вам, что ABI не влияет на производительность? Основная причина отсутствия стандартного ABI заключается в том, что ABI сопоставляет сгенерированные конструкции кода и аппаратное обеспечение, а аппаратное обеспечение сильно различается в процессорах Intel, AMD, Power, Sparc...   -  person David Rodríguez - dribeas    schedule 28.10.2013
comment
Существует C ABI - следовательно, C ++ был бы возможен, ЕСЛИ производители компиляторов могли бы согласиться с ним!   -  person    schedule 28.10.2013
comment
@DavidRodríguez-dribeas LLVM — это инфраструктура виртуальных машин, которая не предоставляет никаких функций высокого уровня, которые вы найдете в чем-то вроде виртуальных машин Java или .NET, включая сборку мусора и объектную модель. Этот псевдокод позже преобразуется в машинный код.   -  person Elvis Dukaj    schedule 28.10.2013
comment
mentorembedded.github.io/cxx-abi/abi.html   -  person Eli Bendersky    schedule 28.10.2013
comment
Вы профилировали код?   -  person Thomas Matthews    schedule 28.10.2013
comment
На самом деле, я считаю, что это дубликат stackoverflow.com/questions/2083060/   -  person Eli Bendersky    schedule 29.10.2013
comment
Возможный дубликат Что может потерять C/C++, если они определят стандартный ABI?   -  person Mgetz    schedule 30.04.2018
comment
@DieterLücking у них есть только для конкретной ОС. Есть Windows C++ ABI и Itanium ABI. Насколько я знаю, это единственные два используемых ABI. Стоит отметить, что у обоих есть версии реализации на обеих платформах, которые могут различаться в зависимости от версии компилятора.   -  person Mgetz    schedule 30.04.2018
comment
@Dieter Есть C ABI. Где? Какой орган по стандартизации определяет это?   -  person n. 1.8e9-where's-my-share m.    schedule 01.05.2018