エラー、バグ、質問 - ページ 977 1...970971972973974975976977978979980981982983984...3185 新しいコメント --- 2013.04.27 12:14 #9761 Renat: GDIメソッドは呼び出されません。 TextOutのことです。 システムではないのですか?ラベルについては理解している、GDIとは一切関係ない Renat Fatkhullin 2013.04.27 13:01 #9762 voix_kas:説明ではなく、指標の値を表示するように設計されたラベルのすべて(半分)でテキストが変更されます。スクリプトを実行すると、このことが確認できます。私があなたを理解していないかのどちらかです。具体的にはどのラインのことでしょうか?すみません、携帯から見ていて間違えてしまいました。数時間以内に自分でテストを行い、ソースコードと詳細な結果を掲載する予定です。 Renat Fatkhullin 2013.04.27 13:10 #9763 sergeev:TextOutのことです。 システムではないのですか?ラベルについては理解している、GDIとは一切関係ないGDIの時はタグの話じゃなかったっけ?ラベルパラメータの変更は、オブジェクトデータがレンダリングされるか読み込まれるまで、そのデータを実際のオブジェクトに付加することなく、コマンドストリームを専用のキューに大量に詰め込むことに他なりません(オブジェクトはMQL5ではなく、チャートに属します)。つまり、モノの本当の意味での改造は先送りされるのです。何万個ものオブジェクトを扱っても、開発者が処理落ちしないように、あえてこのような最適化を施しています。つまり、オブジェクトを変更する際に実際の実行を遅らせることで、スピード感を演出しているのです。さて、そして描画の負担はすべてアプリケーションのインターフェイス(グラフィック)スレッドに担わされます。また、レンダリング時には、最適化の方法と可視性制限のカットオフが機能し、1グラフあたり30万~50万個のオブジェクトで正常に動作させることができるようになりました。しかし、ビットマップを扱う場合、MQL5では全ての作業が滞りなく一度に行われますが、その後のレンダリング時には瞬時に行われるのです。そして、ビットマップの「修正+レンダリング」の合計時間は、オブジェクトの数が一定であれば、より速くなる可能性が高いです。特に、呼び出しの間にビットマップが保存され、キャンバス全体を作り直すのではなく、必要なものだけを描き終えることができることを考慮すると、なおさらです。オブジェクトとビットマップが異なるモードでどのように動作するかを示す詳細なテストを実行し、その結果を掲載します。 Renat Fatkhullin 2013.04.27 15:11 #9764 別スレッドに結果を投稿:チャート上の単一テキストラベルとビットマップのパフォーマンステスト作者のビットマップ処理スクリプトには重大なバグがあり、実際には1枚のビットマップではなく2枚のビットマップを使用し、常に互いにコピーしあっていたため、パフォーマンスが低下していたのです。 削除済み 2013.04.27 16:38 #9765 Renat:テスト結果を別スレッドに投稿:チャート上の単一テキストラベルとビットマップのパフォーマンステスト作者はビットマップを扱う際のスクリプトに重大な欠陥があった。実際には1枚のビットマップではなく2枚のビットマップを使い、常に互いにコピーしあっていたため、パフォーマンスが低下してしまったのだ。実際の出力を高速化する方法は、欠陥なんですね?:)テンプレート・キャンバスやワーキング・キャンバスが導入された目的は、すでにここで説明したとおりです。 Snaf 2013.04.27 16:41 #9766 長生きしようよ。MQL5のハンドブックには、datetime型https://www.mql5.com/ru/docs/basis/types/integer/datetime と書いてあります。 "1970年1月1日から3000年12月31日までの値の範囲。"32535244799の最大値は、3001.01.01 07:59:59です。 Документация по MQL5: Основы языка / Типы данных / Целые типы / Тип datetime www.mql5.com Основы языка / Типы данных / Целые типы / Тип datetime - Документация по MQL5 Renat Fatkhullin 2013.04.27 16:50 #9767 このテストはパフォーマンスベースなので、追加操作で詰まることはないはずです。 削除済み 2013.04.27 20:04 #9768 プログラミングの純度を上げるために、一般の方にお聞きしたいことがあります。グローバルに宣言されたフラグ(bool Flag)があるとする。特定のイベント/条件が発生したときに、特定の値に設定する必要があります。最初のバリエーション。if (некое условие) { Flag = false; }第二の選択肢if (некое условие) { if (Flag) Flag = false; }どのオプションか。1.性能的に速いのか?2.強いて言えば、「よりプロフェッショナルに」ということでしょうか。この部分のコードは、例えばtick毎 など、かなりの頻度で制御されることが想定されます。 Renat Fatkhullin 2013.04.27 20:13 #9769 voix_kas:プログラミングの純度を上げるために、一般の方にお聞きしたいことがあります。グローバルに宣言されたフラグ(bool Flag)があるとする。何らかのイベント/条件が発生したときに、特定の値に設定する必要があります。 もちろん、最初のバリエーションは高速です。命令数が減り、比較・分岐が1つ減りました。 削除済み 2013.04.27 20:28 #9770 Renat: もちろん、最初の選択肢の方が速いです。命令数が減り、比較・分岐が1つ減りました。 ありがとうございます。 1...970971972973974975976977978979980981982983984...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
GDIメソッドは呼び出されません。
TextOutのことです。 システムではないのですか?
ラベルについては理解している、GDIとは一切関係ない
説明ではなく、指標の値を表示するように設計されたラベルのすべて(半分)でテキストが変更されます。スクリプトを実行すると、このことが確認できます。
私があなたを理解していないかのどちらかです。具体的にはどのラインのことでしょうか?
すみません、携帯から見ていて間違えてしまいました。
数時間以内に自分でテストを行い、ソースコードと詳細な結果を掲載する予定です。
TextOutのことです。 システムではないのですか?
ラベルについては理解している、GDIとは一切関係ない
GDIの時はタグの話じゃなかったっけ?
ラベルパラメータの変更は、オブジェクトデータがレンダリングされるか読み込まれるまで、そのデータを実際のオブジェクトに付加することなく、コマンドストリームを専用のキューに大量に詰め込むことに他なりません(オブジェクトはMQL5ではなく、チャートに属します)。つまり、モノの本当の意味での改造は先送りされるのです。何万個ものオブジェクトを扱っても、開発者が処理落ちしないように、あえてこのような最適化を施しています。
つまり、オブジェクトを変更する際に実際の実行を遅らせることで、スピード感を演出しているのです。さて、そして描画の負担はすべてアプリケーションのインターフェイス(グラフィック)スレッドに担わされます。また、レンダリング時には、最適化の方法と可視性制限のカットオフが機能し、1グラフあたり30万~50万個のオブジェクトで正常に動作させることができるようになりました。
しかし、ビットマップを扱う場合、MQL5では全ての作業が滞りなく一度に行われますが、その後のレンダリング時には瞬時に行われるのです。そして、ビットマップの「修正+レンダリング」の合計時間は、オブジェクトの数が一定であれば、より速くなる可能性が高いです。特に、呼び出しの間にビットマップが保存され、キャンバス全体を作り直すのではなく、必要なものだけを描き終えることができることを考慮すると、なおさらです。
オブジェクトとビットマップが異なるモードでどのように動作するかを示す詳細なテストを実行し、その結果を掲載します。
別スレッドに結果を投稿:チャート上の単一テキストラベルとビットマップのパフォーマンステスト
作者のビットマップ処理スクリプトには重大なバグがあり、実際には1枚のビットマップではなく2枚のビットマップを使用し、常に互いにコピーしあっていたため、パフォーマンスが低下していたのです。
テスト結果を別スレッドに投稿:チャート上の単一テキストラベルとビットマップのパフォーマンステスト
作者はビットマップを扱う際のスクリプトに重大な欠陥があった。実際には1枚のビットマップではなく2枚のビットマップを使い、常に互いにコピーしあっていたため、パフォーマンスが低下してしまったのだ。
実際の出力を高速化する方法は、欠陥なんですね?:)
テンプレート・キャンバスやワーキング・キャンバスが導入された目的は、すでにここで説明したとおりです。
長生きしようよ。
MQL5のハンドブックには、datetime型https://www.mql5.com/ru/docs/basis/types/integer/datetime と書いてあります。
"1970年1月1日から3000年12月31日までの値の範囲。"
32535244799の最大値は、3001.01.01 07:59:59です。
プログラミングの純度を上げるために、一般の方にお聞きしたいことがあります。
グローバルに宣言されたフラグ(bool Flag)があるとする。特定のイベント/条件が発生したときに、特定の値に設定する必要があります。
最初のバリエーション。
第二の選択肢
どのオプションか。
1.性能的に速いのか?
2.強いて言えば、「よりプロフェッショナルに」ということでしょうか。
この部分のコードは、例えばtick毎 など、かなりの頻度で制御されることが想定されます。
プログラミングの純度を上げるために、一般の方にお聞きしたいことがあります。
グローバルに宣言されたフラグ(bool Flag)があるとする。何らかのイベント/条件が発生したときに、特定の値に設定する必要があります。
もちろん、最初の選択肢の方が速いです。命令数が減り、比較・分岐が1つ減りました。