我知道C/C++是一种低级语言,当我们与任何其他高级语言进行比较时,它会生成相对优化的机器代码.但我想这远不止于此,从实践中也可以看出这一点.
当我进行像高斯样本集合的montecarlo平均的简单计算时,我发现C++实现或MATLAB实现之间没有太大区别,有时实际上MATLAB在时间上表现得更好.
当我继续使用数千行代码进行更大规模的模拟时,慢慢地显示真实的图像.与同等的MATLAB实现相比,C++仿真显示出优越的性能,比时间复杂度高100倍.
大多数时候,C++中的代码几乎都是串行的,没有明确的高保真优化.然而,根据我的意识,MATLAB本身就做了很多优化.这显示了例如当我尝试生成大量随机样本时,其中使用像IT ++/GSL/Boost这样的库在C++中的等效执行相对较慢(使用的算法是相同的,即mt19937).
我的问题只是想知道MATLAB/C++在性能上是否有更简单的权衡.它就像人们所说的那样,"只要你能,C/C++就更好"(经验丰富的人)?从另一个角度来看,"除了舒适之外,什么是MATLAB的好处?"
顺便说一句,我没有看到编码效率参数在这里很重要,在这两种情况下都考虑了相同的程序员.而且,我认为像python,R这样的其他选择在这里并不重要.但依赖我们使用的特定库应该很有趣.
[我是通信系统中编码理论的博士生.我一直使用matlab/C++进行模拟,并且在两种情况下都有编码少量10K线的合理经验]