キャンバスとラベルの比較 - ページ 4

 
Maxim Kuznetsov:

明らかにキャンバス(BitMap)は全体が再描画/コピーされていますが、ラベルだけが変更されています。なぜ驚かなければならないのか?

Canvasはとにかく便利で、ほどよいスピード感があります。

Dmitry Fedoseev:
そして、比較テストをしなくても、シンプルなラベルの方がテキストを速く出力できることは明らかです。

もちろん、以前から知っていました。しかし、Kanvasを使うのが一番早く出力できる方法だと確信しました。同時に、テスター(テスト対象のExpert Advisorのデータ出力時)では、特にティックでの動作がひどく遅かったです。もちろん、ラベルを使うことで状況は改善されました。そこで、KanvasがLabelsと比べて本当に遅いのか調べてみることにしました。この測定値を信じるなら、321倍も遅いことが判明した。

 
Mihail Matkovskij:

もちろん、以前からわかっていたことではあるのですが。しかし、Kanvasを使うのが一番早く出力できる方法だと確信しました。しかし、テスターでは(テスト中のEAのデータ出力時)、特にティックではひどく遅かったのです。もちろん、ラベルを使うことで状況は改善されました。そこで、Labelsと比較してKanvasが実際にどれくらい遅いのかを調べてみることにしました。この計測で判明したのは321回。

まあ、世の中にはファンタジーのストーリーテラーがたくさんいるんじゃないですか?

 
Dmitry Fedoseev:

世の中にはファンタジーの語り部がたくさんいるのでは?

それは間違いないですね。

 
Maxim Kuznetsov:

明らかにキャンバス(BitMap)は全体が再描画/コピーされていますが、ラベルだけが変更されています。なぜ驚かなければならないのか?

Canvasはとにかく使い勝手がよく、ほどよいスピード感。

なぜビットマップ全体を再描画するのか?
、ラベルを再描画するよりも遅いということを証明するため?

また、正しく比較するためには、ビットマップの一部、マーカーの大きさだけを再描画する必要があります。

 
Taras Slobodyanik:

なぜビットマップ全体を再描画するのか?
、ラベルを再描画するよりも遅いということを証明するため?

また、正しく比較するためには、ビットマップの一部、ラベルのサイズだけを再描画する必要があります。

実はこんな風にアップデートされるんです。

いっせいに

 
Maxim Kuznetsov:

というのが、実際のアップデート方法です。

を一挙に公開します。

は、リフレッシュなのか再描画なのか?
リフレッシュ時に速度が落ちるというのは見たことがありません。

 
Taras Slobodyanik:

ということは、アップデートされているのか、再描画されているのか。
アップデート時のラグを見たことがない。

OBJ_BITMAP_LABELで 作業しているときにブレーキを見たことがない場合、どこでと言うことが重要です。端末で作業する場合、はい。遅れは微々たるものです。しかし、テスターでの作業や、Model: All ticksやM1のOHLCを例にとると、ResourceCreateを使ったm_pixels配列の常時受け渡しが非常に目立ちますね。ピクセル演算は一般に、どのプログラムでも最もコストがかかるとされている。

 
Maxim Kuznetsov:

というのが、実際のアップデート方法です。

いっせいに

え、そういえばビデオバッファのキャンバスをピクセルで編集できたけど、面白みがないなぁ(

 
Dmitry Fedoseev:

ストーリー性のあるファンタジスタは、世の中にあまりいないのではないでしょうか?

ドミトリー、何かを判断する前に、それがどこから始まったのかを理解する必要がある...。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

エラー、バグ、質問

ミハイル・マトコフスキージ, 2021.03.07 14:02

長さが全く同じなのに、見た目は全く違う長さの行を出力するコメント

コメント

コード

void OnStart() {
  string str[5], res="";
  StringInit(str[0], 50, 'a');
  StringInit(str[1], 50, 'X');
  StringInit(str[2], 50, '=');
  StringInit(str[3], 50, ' ');
  StringInit(str[4], 50, ':');
  for (int i = 0; i < 5; i++) 
    res += str[i] + "\n";
  Comment(res);
}

行の長さが同じであることを示すCommentを 出力するにはどうしたらよいですか。例えば、3列の表を 縦に等間隔になるように出力 したい。

私の記憶違いでなければ、どこかに50列と書いてあったような...
 
Alexey Viktorov:

ディミトリ、何かを判断する前に、それがどこから始まったのかを理解する必要がある......。

私の記憶違いでなければ、どこかに50行と書いてあったような...

Canvasベースの表示がLabelsからの表示を追い越すような例を作ってください私の主張を否定したいのなら、論理の法則でその反対を証明しなければならない、みたいな。うまくいくのだろうか...?