プログラムの処理効率って後から改善できるの?

ある程度はできると思うけどさ。
処理効率なんて全く考えないで(考えたこともないようなプログラマが書いていたりして)、やばくなってからそれの処理効率を上げようなんて本当にできるのかね?という疑問。
例えば、あの小町算みたいなプログラムは、少ない入力の範囲ならちゃんと動くけれど、入力が大きくなったら途端に動かなくなるはずなんだよ。で、デモとか見せてお客さんが乗り気になってから、実運用テストとかやってちっとも性能が出なくって、平謝りするしかないとかならないのかな。
まあ、小町算は、どんなプログラマが書いても大差ないけど、リアルなプログラムでも、そこそこ大きなプログラムを最初の設計で性能がでない構造にしてしまって、完成度があがってから、設計をやり直さないと性能がでないなんてことになって、そこでやり直すなんてことが本当に可能なのかな?

      • -

もちろん、設計に問題がなければ、ボトルネックの部分を局所的に書き直すだけで実用的な性能を得ることができるというケースも多いとは思うけど。