雨谷の日和

過去19年で2,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

Cでの行列式計算(allocaでの実装)結果

では、2004.04.14付「Cの行列式計算(allocaでの実装)」で示したソースコードコンパイルし、実行してみよう。

20:56:28
result: 489261678
20:56:36
result: 489261678
20:56:44
result: 489261678
20:56:48
result: 489261678
20:56:52
result: 489261678
20:56:56

最適化無しで約8秒、最適化有りだと約4秒という結果になった。
gcc拡張の可変長配列に比べると、allocaでの実装の方が最適化した場合にやや速くなっているが、これは誤差の範囲かも知れない。
ということで、gcc拡張の可変長配列はスタック領域に確保されているのだろうというkp氏の推測はほぼ間違いないと結論してよいと思う。
ただ、gcc拡張の可変長配列にしても、allocaにしても、その実装については処理系に依存するようであるので、どのプラットフォームでも同様な結果になるとは限らないという事情はあるらしい。それは念頭においておくべきかも知れない。