PLOの華麗さと貧しさ - ページ 4

 
Integer:

...この場合、プログラムの動作方法を変更するための if や switch 呼び出しはなく、初期化時に必要なクラス-子孫を選択するだけで、あとはすべてが素直に簡単に動作することが前提となっているため、非常に素早く動作するはずです。

...

MetaDriver

...

本当の」ポインターを使う言語では、そのような効果はなく、スイッチは、選択リストが大きくなればなるほど、そこで負けてしまうのです。

...

みんな、スイッチのドキュメントを吸って くれ。良いスイッチとは、その性能が選択肢の数に依存しないスイッチトランジションである。1つの選択、100または1000 - その遷移速度は一定になります。
Как работает оператор switch в Си/Си++ - CyberForum.ru - форум программистов и сисадминов
  • Evg
  • www.cyberforum.ru
ВНИМАНИЕ! Вопросы по существу обсуждаемого вопроса просьба задавать здесь или создать тему на форуме и кинуть на неё ссылку в блог или мне в личку. Причин для этого несколько. Я, как и любой другой автор, всегда могу упустить интересный момент обсуждаемой темы (что подтвердилось на практике). А потому задаваемый вопрос может закрывать...
 
Integer:
なぜコンパイルの仕組みを理解する必要があるのですか?ただ、良い結果より悪い結果の方が良いと信じて?

それは不思議な発言ですね。コンパイラレベルの最適化問題を解決しようとしているのに、コンパイラがどのように動作しているか分かっていない。

 
C-4:
みんな、スイッチのドキュメントを 読めよ。良いスイッチとは、その性能が選択肢の数に依存しないスイッチトランジションである。1つの選択、100または1000 - その遷移速度は一定になります。
はい、例のように十分な要素があれば、テーブルジャンプで直接切り替えることができます。
 

私はプログラミングはゼロに近いのですが、OOPはスピードよりも利便性を重視して作られていることがわかります。そして、その通りです。OOPは使い方を知っていれば、便利なものなのです。

一方、テスターで不正確なスプレッドに時間をかけるのは、メタクオーツにとって良いことだと思います。それを使ってEAを書いても、十分なテストができないのでは意味がありません。そのほとんどは、FORTSでの取引に適用されます。

 
dimeon:

私はプログラミングはゼロに近いのですが、OOPはスピードよりも利便性を重視して作られていることがよくわかります。そして、その通りです。OOPは使い方を知っていれば、便利なものなのです。

一方、テスターで不正確なスプレッドに時間をかけるのは、メタクオーツにとって良いことだと思います。それを使ってEAを書いても、十分なテストができないのでは意味がありません。これは主にFORTSでの取引に関するものです。

すでにどこかで詳しい説明(証明)をされているのでしょうか?

ここでは、自分の発言は根拠をもって実証するのが通例で、そうしないと見向きもされない。;)

 

そして一般的に、トップスターターの例ではインライン化が行われていることがわかります。これがないと、デバッグモードでは 結果が逆転し、OOPの方が早くなってしまいます。

この絵は、暗い部屋の中で黒猫を捜していることを暗示している。

 
Renat:

...

一方、仮想メソッドは切り出すことができず、常に呼び出される。その結果、ある場合はただのループ、ある場合はループの中に呼び出しがある。

...

ちなみに、空のループも削除することができます。コード

void OnStart(){
   for(int i = 0; i < 1000000; i++)
      foo();
}

void foo(void){}

シンプルに減らすことができる。

void OnStart(){
   ;
}
 
Vinin:

証拠は向こうからやってくる。あるいはまた、ただの言葉。

大体、私は事実にしか興味がないんです。

OOPが遅いことは既に知っているが、かなり具体的な利便性を提供している

月曜日には、実際のOOPプロジェクトのプロファイリングの例として、その限界性能はシステム関数の呼び出し性能に依存することをお見せしたいと思います。
 
C-4:

それは不思議な発言ですね。コンパイラーレベルの最適化問題を解決しようとしているのに、その仕組みがわからないのでは?

すみません、何か勘違いしているようですが、私はコンパイラの最適化を図ったわけではありません。もし私がやっていたことが理解できないなら、もう一度このスレッドを最初から、しかしもっと注意深く読み直してみてください。また、巧妙なオフトピックにならないように心がけてください。
 
Renat:
はい、例のように十分なエレメントがあれば、テーブルを直接飛び越えるスイッチも用意しています。

この例では、キー値が単一増分であるため、オフセットが単純に計算される、最も単純な変形をとっています。しかし、もしそのようなバリエーションがあれば

case 10: ...

case 100: ... case 1000: ... case 1000000: ...

ここでは、私の理解では、バイナリサーチによって インデックスを定義しています。 この両方のメソッドがあるのでしょうか?