私はプログラムの複雑さ(時間&のスペース)を見つけることができるテストを作成したいと思います。 関数による関数... ライブラリ「時間」を使って、数多くの「n」の関数を実行している間に秒を数えることを考えました。
もっと良いアイデアはありますか?多分それはすでに存在するでしょうか? :)
ありがとう! Amihay
私はプログラムの複雑さ(時間&のスペース)を見つけることができるテストを作成したいと思います。 関数による関数... ライブラリ「時間」を使って、数多くの「n」の関数を実行している間に秒を数えることを考えました。
もっと良いアイデアはありますか?多分それはすでに存在するでしょうか? :)
ありがとう! Amihay
少なくとも時間の複雑さについては、完全に合理的なアプローチのように見えます。プログラムを有効な形式(CSVやタブ区切りなど)で出力して、スプレッドシートに簡単にコピー/ロードできるようにしてください。
スペースの複雑さは、信頼性を高めるには少し難しいかもしれません。このために、有用なメトリックを返すように関数を変更することができます。たとえば、アルゴリズムの主なデータ構造が固定要素のマップである場合、実行中にマップの最大サイズを返すと、十分な情報が得られます。
いくつかのテストを書き、パフォーマンスプロファイリングを行います。もちろん、独自の関数を記述することはできますが、それはどのように行われるのかではありません。良いプロファイラーはあなたが想像することができるあらゆる種類の情報を提供します。
thisチュートリアルのmsndに関するプロファイリングをご覧ください。