字幕表 動画を再生する
Okay, so let's do a quick summary of Studio Zero.
では、スタジオ・ゼロについて簡単にまとめてみよう。
So, in Studio Zero, you created some empirical estimates of performance.
スタジオ・ゼロでは、経験則に基づいたパフォーマンスの推定値を作成したわけだ。
So, you used ticks, which are a useful way to measure operations empirically, as in an actual experiment.
つまり、実際の実験のように経験的に操作を測定するのに便利な目盛りを使ったわけだ。
So, the ticks represented the constant time operations if you place them correctly.
つまり、目盛りを正しく配置すれば、一定の時間操作が可能になるのだ。
So, if you place them correctly, they're proportional to time.
だから、正しく配置すれば、時間に比例する。
So, there's some limits to these empirical approaches.
だから、こうした経験的アプローチには限界がある。
So, the empirical approaches requires a lot of work.
そのため、経験的なアプローチには多くの労力を要する。
You have to create the code.
コードを作成しなければならない。
You have to set up some experiments.
いくつかの実験を準備しなければならない。
You have to choose the right data for your experiments.
実験に適したデータを選択しなければならない。
So, in some of the examples we'll look at later with sorting, the code performs differently on different orders of data.
そのため、後ほど紹介するソートの例では、データの並び順によってコードが異なる動作をする。
And you want to be sure to examine the ones that would be of interest to you or where the worst case would occur.
そして、あなたにとって興味のあるもの、あるいは最悪のケースが発生するものを必ず調べたい。
Then, you actually have to run the experiments.
そして、実際に実験をしなければならない。
And as you experienced in the studio, running experiments takes time.
スタジオで経験したように、実験には時間がかかる。
Then, you have to analyze the results.
そして、その結果を分析しなければならない。
And it's possible that you messed something up in this process and have to repeat it all in order to get valid data, okay?
そして、このプロセスで何かを間違えてしまい、有効なデータを得るためにすべてを繰り返さなければならない可能性もあるんだ。
Not only that, remember that often we're trying to figure out which of multiple algorithms is better.
それだけでなく、私たちはしばしば、複数のアルゴリズムのうちどれがより優れているかを見極めようとしていることを覚えておいてほしい。
So, if you're trying to decide between two alternatives, you have to go through all of this for both alternatives.
つまり、2つの選択肢のどちらかを決めようとする場合、両方の選択肢についてこのすべてを経なければならない。
Create two sets of code.
2組のコードを作成する。
Run multiple sets of experiments.
複数の実験セットを実行する。
Analyze all of the results of both experiments to compare them to one another.
両方の実験結果をすべて分析し、互いに比較する。
So, today we're going to focus on an alternative, an analytical approach.
そこで今日は、それに代わる分析的なアプローチに焦点を当てよう。
So, as compared to the empirical approach, no code is needed.
そのため、経験的なアプローチと比べると、コードは必要ない。
So, you can use this approach to decide which version of code is worth creating before you actually create it.
つまり、実際にコードを作成する前に、どのバージョンのコードを作成する価値があるかを判断するために、このアプローチを使うことができる。
Now, you do need to have a plan.
さて、計画は必要だ。
You need to know what your code is going to be doing.
自分のコードが何をしようとしているのかを知る必要がある。
And you have to be pretty precise about it.
そして、かなり正確にやらなければならない。
But still, you can use this in advance of actual implementation.
しかし、それでも、実際の実装に先立ってこれを使うことはできる。
Another huge advantage of this is that it's easier to focus on the worst case.
このもう一つの大きな利点は、最悪のケースに集中しやすいということだ。
You can estimate operations needed in the worst case even without a really precise idea of what causes the worst case or when the worst case occurs.
何が最悪のケースを引き起こすのか、最悪のケースはいつ発生するのか、正確な情報がなくても、最悪のケースに必要なオペレーションを見積もることができる。