キャンバスとラベルの比較 - ページ 9 12345678910111213141516...18 新しいコメント Dmitry Fedoseev 2021.03.14 05:41 #81 ラベルへのテキスト出力は、キャンバスがクリアされてもいないのに、テキストにスカルプトしていたのに、キャンバスへのテキスト出力より100倍も速いのです。 Dmitry Fedoseev 2021.03.14 05:42 #82 Alexey Viktorov:ディミトリ、何かを判断する前に、それがどこから始まったのかを理解する必要がある......。私の記憶違いでなければ、どこかに50行と書いてあったような... どこから始まったのか?現実逃避で? Mihail Matkovskij 2021.03.14 05:45 #83 Dmitry Fedoseev: kanvasはクリアでもなく、テキストにテキストをスカルプトしていたのに、kanvasよりlabelにテキストを出力する方が100倍速い。 近々、Kanvasも十分速いというテストを発表する予定です。そして、KBの該当するソースコードも更新しておきます。後でわかったことですが、単位時間当たりの更新回数を制限するためです。上の書き込みをご覧ください、そこで議論されていました。まずはこの記事からhttps://www.mql5.com/ru/forum/364640/page6#comment_21290218。 Dmitry Fedoseev 2021.03.14 05:55 #84 Mihail Matkovskij:近々、Kanvasも十分速いというテストを発表する予定です。そして、KBの該当するソースコードも更新しておきます。後でわかったことですが、単位時間当たりの更新回数を制限するためです。上の書き込みをご覧ください、そこで議論されていました。まずはこの記事からhttps://www.mql5.com/ru/forum/364640/page6#comment_21290218。 しかも空想ではなく、現実に適用されるであろうコードの性能を測定しているのです。そして、どこで何をレンダリングしているかは全く気にせず、プログラムの最終的な実行時間を計測しています。 Dmitry Fedoseev 2021.03.14 05:59 #85 TextOut()を1回呼び出すだけの純粋な比較でも、ラベルにテキストを出力するよりも70倍も遅いのです。 Mihail Matkovskij 2021.03.14 06:03 #86 Dmitry Fedoseev:しかも空想ではなく、現実に適用されるであろうコードの性能を測定しているのです。 Dmitry Fedoseev: TextOut()を1回だけ呼び出すという純粋に馬鹿げた比較でさえ、ラベルにテキストを出力するよりも70倍も遅いのです。 いらない、理解できないという方は、こちらを引用してください。 Renat Fatkhullin: Nikolaiの言う通り、ラベルのプロパティを編集しても、ラベルのレンダリングには何の関係もありません。ラベルは、チャート上の他のオブジェクトと同様に、MQL5プログラムの動作とは全く別のスレッドで独立して描画されます。ロボットはチャートの強制再描画を依頼するのみで、描画時間を計測することはできない。オブジェクトを使ったチャート描画は完全に非同期です。しかし、レンダリングキャンバスは、ロボットの流れの中で直接行われ、その後、チャートの独立したレンダリングの間に、ウィンドウのコンテキストで準備ができてビットマップのネイティブBitBlitを行うために残っているので、簡単に測定することができます。この操作は初歩的なもので、ビデオカードによってうまく加速されます。 テキストラベルでは、TTFフォントのSetFont/TextOutはかなり高価です。 Dmitry Fedoseev 2021.03.14 06:04 #87 Mihail Matkovskij:いらない、意味がないと思ったら、見積もりを取る。 そして、私はすでにここで あなたに答えています Mihail Matkovskij 2021.03.14 06:06 #88 Dmitry Fedoseev:そして、私はすでにここで あなたに答えています MetaQuotesのディレクター と議論するつもりですか? Dmitry Fedoseev 2021.03.14 06:08 #89 Mihail Matkovskij:MetaQuotesのディレクター に反論するのか? 意見の相違はありません。 Mihail Matkovskij 2021.03.14 06:35 #90 Dmitry Fedoseev: TextOut()を1回呼び出すだけの純粋な比較でも、ラベルにテキストを出力するよりも70倍も遅いのです。 これは、チャートのレンダリングが別スレッドで行われるためです。一方、OBJ_BITMAP_LABEL のピクセル配列処理は、ビットマップにピクセルを渡すだけでなく、それを使用するアプリケーションと同じスレッドにあります。したがって、OBJ_BITMAP_LABELはアプリケーションの速度を低下させるかもしれませんが、ビットマップがあまり頻繁に更新されない場合は、それほど顕著 ではありません。ちょうど私が以前行ったテストでは、OBJ_BITMAP_LABELが 同じ理由で大幅な速度低下を引き起こしていました。しかし、ビットマップの更新頻度を制限すれば、ラベルを使った場合よりもさらに良い結果が得られます。また、ビットマップの更新速度を制限すれば、OBJ_BITMAP_LABELよりも わずかに速くなります(別スレッドでレンダリングするため)。単純に、人間の目が認識できる以上の頻度でオブジェクトを更新しても意味がないのです。したがって、ラグ、頻繁に更新すると、チャートのすべてのオブジェクトを。 12345678910111213141516...18 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ディミトリ、何かを判断する前に、それがどこから始まったのかを理解する必要がある......。
どこから始まったのか?現実逃避で?
kanvasはクリアでもなく、テキストにテキストをスカルプトしていたのに、kanvasよりlabelにテキストを出力する方が100倍速い。
近々、Kanvasも十分速いというテストを発表する予定です。そして、KBの該当するソースコードも更新しておきます。後でわかったことですが、単位時間当たりの更新回数を制限するためです。上の書き込みをご覧ください、そこで議論されていました。まずはこの記事からhttps://www.mql5.com/ru/forum/364640/page6#comment_21290218。
近々、Kanvasも十分速いというテストを発表する予定です。そして、KBの該当するソースコードも更新しておきます。後でわかったことですが、単位時間当たりの更新回数を制限するためです。上の書き込みをご覧ください、そこで議論されていました。まずはこの記事からhttps://www.mql5.com/ru/forum/364640/page6#comment_21290218。
しかも空想ではなく、現実に適用されるであろうコードの性能を測定しているのです。そして、どこで何をレンダリングしているかは全く気にせず、プログラムの最終的な実行時間を計測しています。
しかも空想ではなく、現実に適用されるであろうコードの性能を測定しているのです。
TextOut()を1回だけ呼び出すという純粋に馬鹿げた比較でさえ、ラベルにテキストを出力するよりも70倍も遅いのです。
いらない、理解できないという方は、こちらを引用してください。
Nikolaiの言う通り、ラベルのプロパティを編集しても、ラベルのレンダリングには何の関係もありません。
ラベルは、チャート上の他のオブジェクトと同様に、MQL5プログラムの動作とは全く別のスレッドで独立して描画されます。ロボットはチャートの強制再描画を依頼するのみで、描画時間を計測することはできない。オブジェクトを使ったチャート描画は完全に非同期です。
しかし、レンダリングキャンバスは、ロボットの流れの中で直接行われ、その後、チャートの独立したレンダリングの間に、ウィンドウのコンテキストで準備ができてビットマップのネイティブBitBlitを行うために残っているので、簡単に測定することができます。この操作は初歩的なもので、ビデオカードによってうまく加速されます。
テキストラベルでは、TTFフォントのSetFont/TextOutはかなり高価です。いらない、意味がないと思ったら、見積もりを取る。
そして、私はすでにここで あなたに答えています
そして、私はすでにここで あなたに答えています
MetaQuotesのディレクター と議論するつもりですか?
MetaQuotesのディレクター に反論するのか?
意見の相違はありません。
TextOut()を1回呼び出すだけの純粋な比較でも、ラベルにテキストを出力するよりも70倍も遅いのです。
これは、チャートのレンダリングが別スレッドで行われるためです。一方、OBJ_BITMAP_LABEL のピクセル配列処理は、ビットマップにピクセルを渡すだけでなく、それを使用するアプリケーションと同じスレッドにあります。したがって、OBJ_BITMAP_LABELはアプリケーションの速度を低下させるかもしれませんが、ビットマップがあまり頻繁に更新されない場合は、それほど顕著 ではありません。ちょうど私が以前行ったテストでは、OBJ_BITMAP_LABELが 同じ理由で大幅な速度低下を引き起こしていました。しかし、ビットマップの更新頻度を制限すれば、ラベルを使った場合よりもさらに良い結果が得られます。また、ビットマップの更新速度を制限すれば、OBJ_BITMAP_LABELよりも わずかに速くなります(別スレッドでレンダリングするため)。単純に、人間の目が認識できる以上の頻度でオブジェクトを更新しても意味がないのです。したがって、ラグ、頻繁に更新すると、チャートのすべてのオブジェクトを。