Я знаю, что C/С++ является языком более низкого уровня и генерирует относительно оптимизированный машинный код, когда мы сравниваем его с любым другим языком высокого уровня. Но я думаю, что есть намного больше, чем это, что также видно из практики.
Когда я делаю простые вычисления, такие как montecarlo-осреднение выборки гауссовских выборок или так, я вижу, что нет большой разницы между реализацией С++ или реализацией MATLAB, иногда на самом деле MATLAB выполняет бит лучше во времени.
Когда я перехожу к симуляции большего масштаба с тысячами строк кода, медленно появляется реальное изображение. Симуляции на С++ показывают превосходную производительность, такую как 100x лучше во временной сложности, чем эквивалентная реализация MATLAB.
Код на С++ в большинстве случаев довольно много серийный, и оптимизация hi-fi не выполняется явно. Принимая во внимание, что, согласно моему осознанию, MATLAB по своей сути делает большую оптимизацию. Это проявляется, например, когда я пытаюсь создать огромный кусок случайных выборок, где, поскольку эквивалент в С++ с использованием некоторой библиотеки, такой как IT ++/GSL/Boost, выполняется относительно медленнее (используемый алгоритм - то же самое, а именно mt19937).
Мой вопрос - просто знать, есть ли более простой компромисс между MATLAB/С++ в производительности. Это похоже на то, что люди говорят: "Когда бы вы ни были, C/С++ лучше" (часто встречающийся). В другой перспективе: "Что такое MATLAB для удобства, кроме комфорта?"
Кстати, я не вижу здесь значения эффективности кодирования, думая об одном и том же программисте в обоих случаях. Кроме того, я думаю, что другие альтернативы, такие как python, R, здесь не актуальны. Но зависимость от конкретных библиотек, которые мы используем, должна быть интересной.
[Я являюсь студентом PhD в теории кодирования в системах связи. Я выполняю симуляции с использованием matlab/С++ все время и имею разумный опыт кодирования нескольких 10K строк в обоих случаях]