PLO - ページ 3 12345678 新しいコメント Dmitry Fedoseev 2010.07.16 19:51 #21 第2パラメータがない場合は同じです。 ファイル: test-2.mq5 2 kb Renat Fatkhullin 2010.07.16 20:15 #22 コードに若干の誤りがありましたので、修正し、チェック出力を追加しました。x64での私の結果です。2010.07.16 20:10:57 Test (GBPUSD,M15) Класс: 828 результат: 0.9999999999999994 2010.07.16 20:10:56 Test (GBPUSD,M15) Функция: 735 результат: 0.9999999999999994 生成されたコードを解析すると、関数とクラスのメソッド 呼び出しが完全にインライン化されており、実際には同等であることがわかった。 ループ内には関数呼び出しがなく、クラスの速度が若干低下しているのは、これによる間接アドレッシングによるものです。以下はそのコードです。class CLASS { protected: double prev; public: CLASS() { prev=0.0; } double ma(double v) { prev=0.1*v+0.9*prev; return(prev); } }; double FUNC(double v,double prev) { prev=0.1*v+0.9*prev; return(prev); } void OnStart() { double x; int start; CLASS CL; //--- start=GetTickCount(); x=0; for(int i=0;i<100000000;i++) { x=FUNC(1,x); } Print("Функция: "+IntegerToString(GetTickCount()-start)," результат: ",x); //--- start=GetTickCount(); x=0; for(int i=0;i<100000000;i++) { x=CL.ma(1); } Print("Класс: "+IntegerToString(GetTickCount()-start)," результат: ",x); } Документация по MQL5: Основы языка / Типы данных / Структуры и классы www.mql5.com Основы языка / Типы данных / Структуры и классы - Документация по MQL5 Renat Fatkhullin 2010.07.16 20:18 #23 関数呼び出しとクラスメソッドの 違いは、このような特別に書かれたテストによってのみ拾い上げることができるのです。実際には、クラスを使用することで、頻繁に使用するパラメータを渡す手間が省け、高速化することができます。 Документация по MQL5: Основы языка / Типы данных / Структуры и классы www.mql5.com Основы языка / Типы данных / Структуры и классы - Документация по MQL5 Дмитрий Александрович 2010.07.22 14:17 #24 Renat:関数呼び出しとクラスメソッドの 違いは、このように特別に書かれたテストでなければ拾えません。実際には、クラスを使用することで、頻繁に使用されるパラメータの転送の経済性を犠牲にして、高速化を実現しています。そうですね、ハードウェアのサポートがない限り、OOPが手続き型プログラミングより速くなることはないでしょう :)まあ、そんなことより、mql5でOOPに飛び込む予定です、まだ手をつけてませんが)) Mario 2010.07.23 19:16 #25 mrProF:そうですね、ハードウェアのサポートがない限り、OOPが手続き型プログラミングより速くなることはないでしょう :)まあ、そんなこと言わずに、mql5でOOPに飛び込みます!まだ手をつけてませんが...))人工頭脳を作りたいプログラマー以外、こんなOOPは必要ない))))ってか、1ページ目の記事読んだけど・・・意味わかんない・・・クランシー・・・なんで?ただ、理由を説明する...30指標は、はるかに高速な専門家...または何のために取り付けられている場合があります))))私は本当に理解していない、怒らないでください。のためかもしれません。2010.07.05オートメイテッド・トレーディング指標:フーリエ法による価格外挿(2012)2010.07.19オートメイテッド・トレーディング指標:Hodrick-Prescottフィルター(3) 削除済み 2010.07.23 19:21 #26 maryan.dirtyn:人工頭脳を作りたいプログラマー以外、こんなOOPは必要ない)))1ページ目の記事読んだけど、意味わかんない...クラッシー...なんで?ただ、理由を説明する...30指標は、はるかに高速な専門家...または何のために取り付けられている場合があります))))私は本当に理解していない、怒らないでください。 自分のために人工的な「脳」を書き、トレーダーを無脳化したいプログラマーのために...。 yu-sha 2010.07.24 01:44 #27 OOPが嫌いなら使うなMT5の基本機能はすべて関数として古典的に実装されています。また、お菓子の量り売りや包装を買うのは、好みの問題です冷蔵庫の棚にある、多色包装のお菓子が好きです Дмитрий Александрович 2010.07.25 20:46 #28 maryan.dirtyn:人工頭脳を作りたいプログラマー以外、こんなOOPは必要ない)))1ページ目の記事読んだけど、意味わかんない...クラッシー...なんで?ただ、理由を説明する...30指標は、はるかに高速な専門家...または何のために取り付けられている場合があります))))私は本当に理解していない、怒らないでください。のためかもしれません。2010.07.05オートメイテッド・トレーディング指標:フーリエ価格外挿(2012)2010.07.19オートメイテッド・トレーディング 指標:Hodrick-Prescottフィルター(3)OOPは大規模なプログラムには向いている。 コード行数が50行以下なら、OOPは必要ない。 しかし、コードが多くなりすぎると、何が何に属しているのか、コメントだけではほとんど分からなくなります。 変数が意図したとおりに共有されないと、エラーが発生する確率が高くなり、混乱する。 OOPでは、変数はメソッド(関数)と共にコンテナ(クラス)の中に格納することができます。OOPで書けて、OOPでなければ書けないタスクはないのです。 利便性の問題です))OOPは問題を解決する方法ではなく、コードを構造化する方法である。 削除済み 2010.07.25 20:56 #29 mrProF:OOPで書けず、OOPでないと書けないタスクはない。利便性の問題です))OOPは課題を解決する方法ではなく、コードの構造化の方法である。 そして、その通り...。:) Дмитрий Александрович 2010.07.25 21:00 #30 私は間違っていました。「OOPで書けて、OOPでなければ書けないタスクはない」のです。そういう意味です)) 12345678 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
第2パラメータがない場合は同じです。
コードに若干の誤りがありましたので、修正し、チェック出力を追加しました。
x64での私の結果です。
2010.07.16 20:10:57 Test (GBPUSD,M15) Класс: 828 результат: 0.9999999999999994 2010.07.16 20:10:56 Test (GBPUSD,M15) Функция: 735 результат: 0.9999999999999994
生成されたコードを解析すると、関数とクラスのメソッド 呼び出しが完全にインライン化されており、実際には同等であることがわかった。
ループ内には関数呼び出しがなく、クラスの速度が若干低下しているのは、これによる間接アドレッシングによるものです。
以下はそのコードです。
関数呼び出しとクラスメソッドの 違いは、このような特別に書かれたテストによってのみ拾い上げることができるのです。
実際には、クラスを使用することで、頻繁に使用するパラメータを渡す手間が省け、高速化することができます。
関数呼び出しとクラスメソッドの 違いは、このように特別に書かれたテストでなければ拾えません。
実際には、クラスを使用することで、頻繁に使用されるパラメータの転送の経済性を犠牲にして、高速化を実現しています。
そうですね、ハードウェアのサポートがない限り、OOPが手続き型プログラミングより速くなることはないでしょう :)
まあ、そんなことより、mql5でOOPに飛び込む予定です、まだ手をつけてませんが))
そうですね、ハードウェアのサポートがない限り、OOPが手続き型プログラミングより速くなることはないでしょう :)
まあ、そんなこと言わずに、mql5でOOPに飛び込みます!まだ手をつけてませんが...))
人工頭脳を作りたいプログラマー以外、こんなOOPは必要ない))))
ってか、1ページ目の記事読んだけど・・・意味わかんない・・・クランシー・・・なんで?
ただ、理由を説明する...30指標は、はるかに高速な専門家...または何のために取り付けられている場合があります))))私は本当に理解していない、怒らないでください。
のためかもしれません。
人工頭脳を作りたいプログラマー以外、こんなOOPは必要ない)))
1ページ目の記事読んだけど、意味わかんない...クラッシー...なんで?
ただ、理由を説明する...30指標は、はるかに高速な専門家...または何のために取り付けられている場合があります))))私は本当に理解していない、怒らないでください。
OOPが嫌いなら使うな
MT5の基本機能はすべて関数として古典的に実装されています。
また、お菓子の量り売りや包装を買うのは、好みの問題です
冷蔵庫の棚にある、多色包装のお菓子が好きです
人工頭脳を作りたいプログラマー以外、こんなOOPは必要ない)))
1ページ目の記事読んだけど、意味わかんない...クラッシー...なんで?
ただ、理由を説明する...30指標は、はるかに高速な専門家...または何のために取り付けられている場合があります))))私は本当に理解していない、怒らないでください。
のためかもしれません。
OOPは大規模なプログラムには向いている。
コード行数が50行以下なら、OOPは必要ない。
しかし、コードが多くなりすぎると、何が何に属しているのか、コメントだけではほとんど分からなくなります。
変数が意図したとおりに共有されないと、エラーが発生する確率が高くなり、混乱する。
OOPでは、変数はメソッド(関数)と共にコンテナ(クラス)の中に格納することができます。
OOPで書けて、OOPでなければ書けないタスクはないのです。
利便性の問題です))
OOPは問題を解決する方法ではなく、コードを構造化する方法である。
mrProF:
OOPで書けず、OOPでないと書けないタスクはない。
利便性の問題です))
OOPは課題を解決する方法ではなく、コードの構造化の方法である。
私は間違っていました。「OOPで書けて、OOPでなければ書けないタスクはない」のです。
そういう意味です))