Por que a oitava é mais lenta que o MATLAB?

Eu tenho usado o Octave e o MATLAB em alguns projetos, e me deparei com algumas perguntas. Essa questãoPor que / quando devo preferir o MATLAB ao Octave?) respondeu várias, mas ainda há uma persistente ...

Eu li uma série de posts / outras fontes comparando o desempenho do Octave e do MATLAB, e eu executei alguns dos meus próprios testes em scripts padrão que confirmam o consenso geral de que o Octave é geralmente muito mais lento que o MATLAB para operações padrão (iterado, claro, para que a comparação seja significativa).

O consenso também parece sugerir que a maior parte do aumento de desempenho do MATLAB é atribuível ao seu compilador JIT, que compila grandes loops em tempo de execução. Isso faz sentido, e as maiores diferenças de desempenho parecem ocorrer nesses casos (por exemplo,Mathworks Matlab vs Gnu Octave)

Minha pergunta é a seguinte: por que deveria ser o caso de que o código vetorizado também é executado mais lentamente no Octave? Parece que, neste caso, a memória deve ser posta de lado antes do loop e algum loop C / C ++ nativo deve executar a operação, o que equivaleria ao desempenho entre o Octave e o MATLAB para o código vetorizado. Além disso, isso tem implicações mais amplas, ou seja, o Octave pode ter um desempenho pior para operações complexas, mesmo se o código for escrito de tal forma que um compilador JIT seja desnecessário / não utilizado?

questionAnswers(2)

yourAnswerToTheQuestion