従来法の問題点

インデックスに戻る][ホームに戻る][掲示板にジャンプ][メールを送る]

1.はやいパソコンとは 

みなさん「体感とベンチマークは必ずしも一致しない」 とか言う話を聞いたことがありませんか?
これにはいろいろ言い訳が考え出されています。
理由ではありません。
子供が自分の立場を取繕うためにするのと同じ言い訳です。

曰く ベンチマークは実際のアプリでは無いので条件が違うからだ。
曰く 実際のパソコンの使い方は人それぞれ違うからだ
曰く 体感の加減は人それぞれ違うからだ。

それでも多少は参考ぐらいにはなるかと思うのですが、実際にはほとんどというか、あまりに一致しないと思いませんか?

実はもっと根の深〜〜〜い根本的な問題があったのです。

ベンチマークの数値さえ、上がれば良いという人は以下を読む必要は有りません。

すこしでも体感速度に近いベンチマークデータを欲しい人は読んでみてください。  

まずは今までの評価方法がどうおかしいのか検証して見ましょう。

A社、B社、C社製の3つのパソコンがあります。

A社製は表示が速いがHDの転送が遅いパソコンです。

C社製は表示は遅いがHDの転送が速いパソコンです。

B社製はその中間的なパソコンです。

ベンチマーク1(四角の描画の速度)とベンチマーク2(HDのread)の2つのベンチマークのスコアがそれぞれ以下とします。

ベンチマーク2は3種類のデータが並んでいますが、単位が違うだけで同じ速度を表しています。

  単位
ベンチマーク1(四角) 10000 1000 100 個/秒
ベンチマーク2(HDD) 100 1000 10000 KB/秒
0.1 1 10 MB/秒
100000 1000000 10000000 B/秒

このパソコンを10000個の矩形を表示し、10000KBのデータを読み込む業務に使う場合ではどのパソコンがもっともはやいでしょうか。 

従来の数値の合計が大きい物がよいという評価方法では

A:10000+100=10100 ポイント
B:1000+1000=2000 ポイント 
C:100+10000=10100 ポイント

結果はA=C>>Bとなり この場合はAとCは同等の能力で、Bだけは他の1/5の能力しかないことになります。

(・_・):誰がどない見てもBがボロクソに遅いがな!


いまたまたまベンチマーク2の評価をKB/秒で行っていますが、もしMB/秒で計測していたらどうなるでしょうか 
A:10000+0.1=10000.1 ポイント 
B:1000+1=1001 ポイント
C:100+10=110 ポイント 
結果はA>>B>>Cとなり 
BはCより10倍も早く、
AはBよりもさらに10倍もはやい。 ということになります。

(・_・):Aがダントツで、Cはカスやんけ!

またもし、ベンチマーク2の評価をB/秒で計測していたらどうなるでしょうか
A:10000+100000=110000 ポイント 
B:1000+1000000=1001000 ポイント 
C:100+10000000=10000100 ポイント 
結果はC>>B>>Aとなり 
今度はさっきと全く逆で、
BはAより10倍も早く、
CはBよりもさらに10倍もはやい。
 ということになります。

(・_・):なんでやねん!

もともと同じデータなのに集計する時に単位を変えるだけで評価が激変するような評価方法が正しいはずは有りませんね。
とりあえず、単位の違う数値の合計を求めるというのは間違いであるということくらいは分かります。

合計をデータ数で割った平均値というのもよく使われますが、値が小さくなるだけで傾向としては同じで、不適当です。

単位を合わせれば良いんだということに気がつけば、これもよく用いられている方法ですが、1機種(または旧機種)のデータを基準(100%)とした場合で評価するという方法があります。 
この場合は測定データの単位がなんであろうと、基準と比較した後の計算結果は「%」になるため、単位が同じになります。 
では計算して見ましょう。
単位は(%)
  Aを基準にした場合 Bを基準にした場合 Cを基準にした場合
四角 HDD 四角 HDD 四角 HDD
100 100 1000 10 10000 1
1000 10 100 100 1000 10
10000 1 10 1000 100 100
Aを基準にした場合 
A:100+100=200 ポイント 
B:1000+10=1010 ポイント
C:10000+1=10001 ポイント  
結果はC>>B>>Aとなり、 
BはAより5倍はやく、
CはBよりさらに10倍速いことになります。

 

続いてBを基準にした場合 
A:10+1000=1010 ポイント
B:100+100=200 ポイント 
C:1000+10=1010 ポイント
結果はA=C>>Bとなり、 
AとCは同じでBより5倍はやい
ことになります。 
ついでにCを基準にした場合 
A:10000+1=10001 ポイント 
B:1000+10=1010 ポイント 
C:100+100=200 ポイント 
結果はA>>B>>Cとなり、 
BはCよりも10倍はやく、
AはBよりもさらに10倍はやい
ことになります。 
Aを基準にした場合とまるっきり逆ですね。

基準を変えただけで、こんなに評価が変わるというのが、正しい評価方法であるはずは有りませんね。 
この1つの機種を基準にという考え方は一見正しそうですが、能力の足し算をしたこと自体がが間違いであるということです。 
またこの計算方法は基準になる機種がもっとも不利になるという問題が有ることが分かります。

では、処理に必要な時間で評価すると
  四角 HDD 合計(秒)
10000/10000=1 10000/100=100 101
10000/1000=10 10000/1000=10 20
10000/100=100 10000/100=100 101
Aは1+100=101秒 
Bは10+10=20秒 
Cは100+1=101秒 
結果は短時間で終わるほどはやいのですから、
Bの能力>>A=Cとなり、 実はBが他の5倍も速い事が分かります。

2.体感速度というのは一体どういうものでしょうか? 

HDの転送速度などという物は目に見えません。 
せいぜい、HDのアクセスランプの点滅を見つめるくらいなものです。 
また、いくら表示されているからといっても、毎秒1000個も矩形を表示していくのを目で追って数えることは不可能です。 
実際にはスタートしてから、一定の処理が終わるまでの時間の長さを感じているわけです。 
つまり処理時間の短いパソコンがはやいと体感できるパソコンなのです。 
あまりに概念的話ですので、もう少し具体的な例題をみてみましょう。

A君は毎日時速4kmで徒歩10分の後、時速100kmの電車に1時間乗って、会社(or学校)に通っています。 

片道1時間強はちょっときついので、Bさんに相談しました。 
A君:「もっとはやく通う方法は無いでしょうか?」 

ベンチマーク好きのBさん
電車の100kmは十分速いけど徒歩の4kmが遅すぎるね。駅まで平均時速40kmでバイクをとばせば、
徒歩の時の平均
(100+4)/2=52km/h
に比べてバイクの時は
平均(100+40)/2=70km/h
になるから 
70/52=1.35となって、35%速くなるよ。」
それを聞いていた
ベンチマーク狂のCさん

馬鹿だなあ、
電車の速度は変化なしなので100%、
徒歩をバイクにすると40/4=10=1000%
も速くなっているんだから、
平均すれば(100+1000)/2=550%
と5.5倍も高速化されるじゃん。 


A君、「そんなに速くなるんだったら、バイク買うっきゃないっすねぇ。」

数日後のA君 「Bさん、Cさん、バイク買ったけど5倍どころか3割さえも早くなった気がしないんですけど〜〜。」 
Bさん、Cさん 「体感とベンチマークは必ずしも一致しないもんさ」

ではA君の体感、Bさんの計算、Cさんの計算のうち正しいのはどれでしょう。(笑) 

(回答
もちろんA君ですよね。 

(解説 
本当にはやくなった量は 
徒歩の時は60分+10分=70分 
バイクの時は
60分+10分*4/40=60分+1分=61分 
差は9分で、
割合では70/61=1.15となり、
それでも15%速くなっています。


がBさんのベンチマーク方法の予想値の35%に比べれば半分以下ですね。 
特にCさんのベンチマーク方法の様に元の何%アップとかいう数値の合計や平均を求める評価方法がいかにでたらめであるかが良く分かりますね。 

こういう速度と時間の問題は小学校で習った覚えがあると思いますが、 この時一番良く間違うパターンが速度を足して平均してしまうという間違いです。 

その小学生でやってはいけないと習った間違いを業界ぐるみでやっているのです。(笑)
(^_^):コンピュータ業界っちゅうのは技術の最先端の産業やなかったんかいな!
(・_・):せやから這いテク行怪ゆうんやんか!

パソコンのベンチマークデータは単位時間あたりの計算回数だったり、データ転送量であったりして、通常単位系が違います。
従って、それらの単位の違うデータを合計したり、それをデータ数で割って平均値化したりするということは、無意味以外の何ものでも有りません。

また基準に対して何%速くなったかという数値を平均化しても、全く意味が有りません。

単位系が同じだからといって、速度どうしの平均を取っても意味が有りません。

一番正しい評価方法は一定の仕事量をこなすのに何秒かかるかという、時間の単位で評価することです。

そして短時間で処理が終わる方が良いということを理解してください。

 100m走で10秒切る人と10秒以上かかる人ではどちらが速いかといえば10秒切る人ですよね。

ところがベンチマークで計ったパソコンの性能をグラフ化する時に、棒グラフが長いほど、高性能に思う人がいらっしゃる様です。

雑誌の編集者にもそういう人が多いのかもしれません。
より賢いユーザーになる為には、短時間で終わるパソコンほどはやいパソコンだということを理解してください。

3.なぜパソコンをパワーアップしても思ったよりもはやくならないのか?

パソコンの動作は、プログラムの各部分部分の処理時間の合計になります。
この処理時間は処理内容によって、ボトルネックになる要素が異なります。
例1)
メインメモリを読む必要がある場合はCPUはデータが読みこみ終わるまでひたすら、待機しつづけます。
右の図で色のついているところが実行時間です。
この場合はCPUをこれ以上はやくしても、待機している時間が長くなるだけで、パソコンとしてははやくなりません。
CPU    
メモリ    
クロック | | | | | | | | | | | |

ところが、メモリをはやくすれば、その分だけパソコンとしても早くなります。
この図の場合はメモリを2倍のはやさにすれば2倍はやくなります。
CPU        
メモリ        
クロック | | | | | | | | | | | |

例2)
逆にCPU内部のキャッシュが100%ヒットしている間は、メモリはなにもする仕事が有りません。
この場合はメモリをはやくしても、パソコンとしてははやくなりません
CPU    
メモリ    
クロック | | | | | | | | | | | |

が、CPUをはやくすれば、その分だけパソコンとしてもはやくなります。
この図の場合はCPUを2倍のはやさにすれば2倍はやくなります。
CPU        
メモリ        
クロック | | | | | | | | | | | |

この処理時間が遅くなっている原因の部分はボトルネックと呼ばれています。

これを他の要素にも応用すると

パソコンの処理時間=CPUがボトルネックの処理時間+メモリがボトルネックの処理時間+VGAがボトルネックの処理時間+HDがボトルネックの処理時間+・・・
というように表されます。

本当に2倍はやいパソコンにしようと思った場合は、CPUも2倍はやく、メモリも2倍はやく、HDDも2倍はやく、VGAも2倍はやく・・・
というように何もかも2倍はやくしなければなりません。

ところが実際のパワーアップはCPUだけはやくするとか、VGAだけはやくするとかしかできません。

例として、「CPU」と「CPU以外のその他」という分類で考えてみましょう。

CPUが本当にボトルネックになっている場合、例えば

CPUがボトルネックの処理時間が90秒、
CPU以外がボトルネックの処理時間が10秒とします。

CPUを2倍はやい物に替えた場合は
CPUがボトルネックの処理時間が90/2=45秒に減少します。

パソコンとして評価すると
もとの処理時間は90+10=100秒
パワーアップ後は90/2+10=45+10=55秒
高速化の度合いは100/55=182%
とCPUを2倍高速化したらパソコンとしては82%高速化されます。
  CPU その他 合計(秒)
改良前 90 10 100
改良後 90/2=45 10 55

これぐらいはやくなってくれれば交換した甲斐があるというものです。

しかし、残念ながら実際のアプリケーションではこれほど、CPUに依存するような処理は無いようです。

今度はCPUがボトルネックの処理時間が50秒、CPU以外がボトルネックの処理時間が50秒とします。

CPUを2倍はやい物に替えた場合はCPUがボトルネックの処理時間が50/2=25秒に減少します。パソコンとして評価すると

もとの処理時間は50+50=100秒
パワーアップ後は50/2+50=25+50=75秒
高速化の度合いは100/75=133%
  CPU その他 合計(秒)
改良前 50 50 100
改良後 50/2=25 50 75

とCPUを2倍も高速化したのにパソコンとしては33%しか高速化されていません。
これはCPUがボトルネックの処理時間が元々全体の50秒/100秒=50%しかないため、全体としては大したボトルネックでは無いからです。

(・_・):50%でもたいしたボトルネックやないんかよ!

もっともっとCPUを早くして100倍はやいCPUに交換したとしても
パワーアップ後は50/100=0.5+50=50.5秒
高速化の度合いは100/50.5=198%
とCPUを100倍も高速化したのにパソコンとしては2倍も高速化できません。
  CPU その他 合計(秒)
改良前 50 50 100
改良後 50/100=0.5 50 50.5
つまり、よほどボトルネックになっている処理が分かっていて、よほどうまく高速化しないことにはパソコンははやくなりません。

現実的にはすでにボトルネックは処理内容によって変化する為、ある処理だけは早くなってもその他の処理時間はほとんど変わらないというようなことが起こります。

1つのパーツを換えただけではわずかしかはやくならないと思ったほうが良いと思われます。

3.ではなぜこのようないい加減な評価方法が蔓延してしまったのでしょうか?

○メーカにとって、自分のところの新製品がはやくなったイメージを持たせた方が、たくさん売れて良い。

○販売店も同様のイメージを持ってもらった方が、たくさん売れてよい。

○ユーザーはせっかく高価な物を買うのだから、少しでもはやくなって欲しい。
これは恋人に「嘘でもいいから好きだといってくれ〜〜〜!」と頼んでいるような気持ちというところでしょうか?
(^_^):わいだって、高価なパーツ買ったらそうおもてまっせ〜〜〜!

○パソコン雑誌(&ライター)は、広告料がたくさんはいって、本がたくさん売れさえすれば良い。
よって、広告主や購入者が喜ぶような記事を書く。

以上4者が4者とも嘘でもいいからはやくなったようにみえる方が良いと思っているからです。(笑)

とうぜん訳も分からず書いているライターさんも多いことでしょうが、わざと書いているライターさんがいないとはいえないでしょう。A^_^;)

パワーアップが体感できないのはよく行われているベンチマークの評価方法ほど
実際には早くなっていないから
というのが主因でしょう。(T_T)

To Be Continued

インデックスに戻る][ホームに戻る][掲示板にジャンプ][メールを送る]