Сообщение Re[23]: Visual C# vs C++. Надо сравнить перспективы. от 13.01.2017 1:19
Изменено 13.01.2017 1:20 Evgeny.Panasyuk
Re[23]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, Jack128, Вы писали:
EP>>Он плохо оптимизирует в том числе потому что управляемый код труднее оптимизировать. Например замыкания на C++ порождают обычные вызовы, а на C# косвенные.
J>Тут дело не в управляемом коде, а в противопоставлении "шаблоны vs раздельная компиляция". в плюсах, если хоцца отдельно скопилировать ФВП от кода её использущего — тут же скатываешся к std::function и той же самой косвенности вызовов.
Безусловно — если писать на C++ в Java-стиле с кучей индерекций и косвеностей а-ля std::function, то грубо говоря получим аналогичные тормоза.
Но на C++ есть выбор — либо использовать std::function, либо не использовать, причём по-умолчанию второе. На управляемых языках такого выбора нет, только первый вариант
EP>>Он плохо оптимизирует в том числе потому что управляемый код труднее оптимизировать. Например замыкания на C++ порождают обычные вызовы, а на C# косвенные.
J>Тут дело не в управляемом коде, а в противопоставлении "шаблоны vs раздельная компиляция". в плюсах, если хоцца отдельно скопилировать ФВП от кода её использущего — тут же скатываешся к std::function и той же самой косвенности вызовов.
Безусловно — если писать на C++ в Java-стиле с кучей индерекций и косвеностей а-ля std::function, то грубо говоря получим аналогичные тормоза.
Но на C++ есть выбор — либо использовать std::function, либо не использовать, причём по-умолчанию второе. На управляемых языках такого выбора нет, только первый вариант
Re[23]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, Jack128, Вы писали:
EP>>Он плохо оптимизирует в том числе потому что управляемый код труднее оптимизировать. Например замыкания на C++ порождают обычные вызовы, а на C# косвенные.
J>Тут дело не в управляемом коде, а в противопоставлении "шаблоны vs раздельная компиляция". в плюсах, если хоцца отдельно скопилировать ФВП от кода её использущего — тут же скатываешся к std::function и той же самой косвенности вызовов.
Безусловно — если писать на C++ в Java-стиле с кучей индерекций и косвеностей а-ля std::function, то грубо говоря получим аналогичные тормоза.
Но на C++ есть выбор — либо использовать std::function, либо не использовать, причём по-умолчанию второе. На управляемых языках обычно такого выбора нет, только первый вариант
EP>>Он плохо оптимизирует в том числе потому что управляемый код труднее оптимизировать. Например замыкания на C++ порождают обычные вызовы, а на C# косвенные.
J>Тут дело не в управляемом коде, а в противопоставлении "шаблоны vs раздельная компиляция". в плюсах, если хоцца отдельно скопилировать ФВП от кода её использущего — тут же скатываешся к std::function и той же самой косвенности вызовов.
Безусловно — если писать на C++ в Java-стиле с кучей индерекций и косвеностей а-ля std::function, то грубо говоря получим аналогичные тормоза.
Но на C++ есть выбор — либо использовать std::function, либо не использовать, причём по-умолчанию второе. На управляемых языках обычно такого выбора нет, только первый вариант