エラー、バグ、質問 - ページ 975 1...968969970971972973974975976977978979980981982...3185 新しいコメント 削除済み 2013.04.27 10:00 #9741 訂正します。ビットマップの性能はタグに比べ16%〜25%( 要素数による)劣りますが 、先ほど書いたような桁違いの差ではありません。最初にツールを習得する際に、コードにエラーや非効率があったのでしょう。そのコードを添付します。トーロク信じてください、私はあなた=私を欺く動機はひとつ もないのです。最初の実験では、テスターでビットマップを観察しました。残念ながら、再現できません。:( ファイル: BenchmarkLabel.mq5 5 kb BenchmarkBitmap.mq5 3 kb Anatoli Kazharski 2013.04.27 10:40 #9742 voix_kas:...トーロク信じてください、私はあなた=私を欺く動機はひとつ もないのです。最初の実験では、テスターでビットマップを観察しました。残念ながら、再現できません。:( オッケーです。開発者がこの機能を実装するのを待ってから、きちんとテストしてみましょう。))) 削除済み 2013.04.27 10:47 #9743 また、フォントの表示の違いについても、開発者の方々に注意していただきたいと思います。左がビットマップ、右がラベルです。設定はすべて同じですが、ビットマップの方がフォントが若干太く描かれて います。質問は批判的なものではありません。しかし、注文には注意が必要です。:) Anatoli Kazharski 2013.04.27 10:53 #9744 voix_kas:また、フォントの表示の違いについても、開発者の方々に注意していただきたいと思います左がビットマップ、右がラベルです。設定はすべて同じですが、ビットマップの方が若干太いフォントで描画 されています。この問題はクリティカルではありません。しかし、秩序を保つためには、注意を払う必要があります。:) また、ビットマップに使用したフォントの太さを設定するフラグは 何ですか? --- 2013.04.27 10:56 #9745 voix_kas:訂正します。ビットマップの性能はタグに比べ16%〜25% 劣りますが (要素数による)、先ほど書いたように桁違いというわけではありません。しかし、あなたのテストは間違っています。変更のたびにChartRedrawを使用 します。つまり、実際には10000回のChartRedrawをテストしていることになります。こんなのおかしいよ。 ラベルとビットマップのどちらが早く変化するかを見極めるのが課題です。そして、その後のチャート上のアウトプットでもない。ChartRedrawをループ内に残した場合のテスト結果です。 ビットマップ更新時間=40980。 ラベルを更新する時間=41777。(つまり、ビットマップはラベルよりもわずかに速いのです)。また、ChartRedrawがループ内に ある場合、ラベルの数とビットマップの幅は 、何も影響 しないことに注意してください。つまり、この状況ではChartRedraw関数が最も遅いのです。---ChartRedrawをループから外すと、全く異なる数値が得られます。ビットマップ更新時間=5788。 ラベルの更新時間=234。ということで、タグ付き端末はビットマップの20 倍速いです 。で、ここではもちろん、すでにビットマップの高さ依存性を見ることができます。ビットマップ更新時間=51355。 ラベルの更新時間=1108。 50 倍差マークの座標は変更しないでください。となる ビットマップ更新時間=25054。百点満点の差は25倍です。ですから、ビットマップを扱う限りは、ご覧のように本当に遅いのです。配列+WinGdi TextOut+ResourceCreateの作成を常に繰り返すこと=ネイティブMTオブジェクトに少なくとも1桁、いや50 倍は劣るということを明確に示して います。だから、MTを拒否してはいけないのです。グラフやヒストグラムを描くのにとても便利でしょう。 Документация по MQL5: Операции с графиками / ChartRedraw www.mql5.com Операции с графиками / ChartRedraw - Документация по MQL5 削除済み 2013.04.27 10:57 #9746 tol64: また、ビットマップに使用したフォントの太さを設定するフラグは 何ですか?デフォルトは0なので、明示的に設定しない。添付のソースコードで確認することができます。また、異なるフラッグを使った「遊び」を追加しても、統一には至らなかった。 削除済み 2013.04.27 11:08 #9747 sergeev:...ラベルとビットマップのどちらが速く修正できるかを調べるのが目的です。その後のチャートへの出力ではありません。...ChartRedraw()関数の ループからの削除は、テキストラベルのプロパティ変更という「原子操作」を端末のビデオモータが処理することはないため、誤りである。ChartRedraw()を呼び出したときのみ、異なるオブジェクトからのアルファチャンネル画像の相互オーバーラップを含む、ウィンドウ全体が描画されます。この仮説は、テキストラベルを持つスクリプトのコードプロファイラによって厳密に確認された。ビットマップに関しては、TextOut()関数がボトルネックになっています。 Anatoli Kazharski 2013.04.27 11:14 #9748 voix_kas:...ビットマップに関しては、TextOut()関数がボトルネックになっています。その方がわかりやすいですね。)) 削除済み 2013.04.27 11:18 #9749 tol64:その方が分かりやすいですよね。))私もそう思います。:)セルゲイ...ChartRedrawをループ内に残した場合のテスト結果は以下の通りです。 ビットマップ更新時間=40980。 ラベルのリフレッシュ時間=41777。(タグよりもビットマップの方がわずかに速いなど)。不思議なことに、私は逆のイメージを持っています。 Renat Fatkhullin 2013.04.27 11:29 #9750 Argb_normalize は、色の正規化に余分なコストがかかるので、使用しない方がよいでしょう。シンプルなものはピュアな色で描いたほうがいい。また、ビデオカードの2D機能をフルに活用するため、速度も直接かつ強く影響します。例えば、初歩的なグラフィックカードを 搭載した弱小ノートパソコンでは、レンダリングが 遅く、出力方法の違いも大きくなります。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования www.mql5.com Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5 1...968969970971972973974975976977978979980981982...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
訂正します。ビットマップの性能はタグに比べ16%〜25%( 要素数による)劣りますが 、先ほど書いたような桁違いの差ではありません。
最初にツールを習得する際に、コードにエラーや非効率があったのでしょう。
そのコードを添付します。
トーロク
信じてください、私はあなた=私を欺く動機はひとつ もないのです。最初の実験では、テスターでビットマップを観察しました。残念ながら、再現できません。:(
...
トーロク
信じてください、私はあなた=私を欺く動機はひとつ もないのです。最初の実験では、テスターでビットマップを観察しました。残念ながら、再現できません。:(
また、フォントの表示の違いについても、開発者の方々に注意していただきたいと思います。
左がビットマップ、右がラベルです。設定はすべて同じですが、ビットマップの方がフォントが若干太く描かれて います。
質問は批判的なものではありません。しかし、注文には注意が必要です。:)
また、フォントの表示の違いについても、開発者の方々に注意していただきたいと思います
左がビットマップ、右がラベルです。設定はすべて同じですが、ビットマップの方が若干太いフォントで描画 されています。
この問題はクリティカルではありません。しかし、秩序を保つためには、注意を払う必要があります。:)
訂正します。ビットマップの性能はタグに比べ16%〜25% 劣りますが (要素数による)、先ほど書いたように桁違いというわけではありません。
しかし、あなたのテストは間違っています。
変更のたびにChartRedrawを使用 します。つまり、実際には10000回のChartRedrawをテストしていることになります。こんなのおかしいよ。
ラベルとビットマップのどちらが早く変化するかを見極めるのが課題です。そして、その後のチャート上のアウトプットでもない。
ChartRedrawをループ内に残した場合のテスト結果です。
ビットマップ更新時間=40980。
ラベルを更新する時間=41777。
(つまり、ビットマップはラベルよりもわずかに速いのです)。
また、ChartRedrawがループ内に ある場合、ラベルの数とビットマップの幅は 、何も影響 しないことに注意してください。つまり、この状況ではChartRedraw関数が最も遅いのです。
---
ChartRedrawをループから外すと、全く異なる数値が得られます。
ビットマップ更新時間=5788。
ラベルの更新時間=234。
ということで、タグ付き端末はビットマップの20 倍速いです 。
で、ここではもちろん、すでにビットマップの高さ依存性を見ることができます。
ビットマップ更新時間=51355。
ラベルの更新時間=1108。
50 倍差
マークの座標は変更しないでください。
となる
ビットマップ更新時間=25054。
百点満点の差は25倍です。
ですから、ビットマップを扱う限りは、ご覧のように本当に遅いのです。
配列+WinGdi TextOut+ResourceCreateの作成を常に繰り返すこと=ネイティブMTオブジェクトに少なくとも1桁、いや50 倍は劣るということを明確に示して います。
だから、MTを拒否してはいけないのです。グラフやヒストグラムを描くのにとても便利でしょう。
また、ビットマップに使用したフォントの太さを設定するフラグは 何ですか?
デフォルトは0なので、明示的に設定しない。添付のソースコードで確認することができます。
また、異なるフラッグを使った「遊び」を追加しても、統一には至らなかった。
...
ラベルとビットマップのどちらが速く修正できるかを調べるのが目的です。その後のチャートへの出力ではありません。
...
ChartRedraw()関数の ループからの削除は、テキストラベルのプロパティ変更という「原子操作」を端末のビデオモータが処理することはないため、誤りである。
ChartRedraw()を呼び出したときのみ、異なるオブジェクトからのアルファチャンネル画像の相互オーバーラップを含む、ウィンドウ全体が描画されます。
この仮説は、テキストラベルを持つスクリプトのコードプロファイラによって厳密に確認された。
ビットマップに関しては、TextOut()関数がボトルネックになっています。
...
ビットマップに関しては、TextOut()関数がボトルネックになっています。
その方がわかりやすいですね。))
その方が分かりやすいですよね。))
私もそう思います。:)
...
ChartRedrawをループ内に残した場合のテスト結果は以下の通りです。
ビットマップ更新時間=40980。
ラベルのリフレッシュ時間=41777。
(タグよりもビットマップの方がわずかに速いなど)。
不思議なことに、私は逆のイメージを持っています。
Argb_normalize は、色の正規化に余分なコストがかかるので、使用しない方がよいでしょう。シンプルなものはピュアな色で描いたほうがいい。
また、ビデオカードの2D機能をフルに活用するため、速度も直接かつ強く影響します。例えば、初歩的なグラフィックカードを 搭載した弱小ノートパソコンでは、レンダリングが 遅く、出力方法の違いも大きくなります。