OOPに関するヘルプ - ページ 7

 
fxsaber #:

オブジェクトの自動削除の時間が考慮されていないため、誤った比較となる。

修正されました。

V3以降の123メガバイトがどこから出てくるのか、私にはわかりません。

いいえ、正しいです。そして、これは原則的なポイントです。自動削除は、時間コストが極端にかかるメインスレッドでは行われない。並列スレッドが使用したメモリを戻すのを待たずに、新しい実行を開始することができます。確かにそれも呼び出され、CPUリソースも消費しますが、バックグラウンドで実行されるサイドオペレーションになります。どのような最適化でも、たとえ最も積極的な最適化でも、CPUのリソースの一部は他のスレッドで利用できるようになります。最近のプロセッサーでCPUに100%の負荷をかけるのは、不可能に近い。

--

別の言い方をすると仮に5時間単位で実行するタスクがあるとする。1スレッドで5ユニット、2スレッドでそれぞれ3ユニットと2ユニットで実行できます。明らかに、総実行時間は5ユニットと同じですが、タスクは2番目のケースでは同時進行し、1番目のケースでは同時進行しないため、2番目のケースで必要な物理的時間は2ユニット少なくなります。最適化は、CPUの利用可能な物理コアをすべて占有するという反論があります。しかし、これは事実ではありません。どんな最適化をしても、せいぜいOSのコア数と同じ数のスレッドを割り当てるのが関の山です。しかし、これらのタスクに加えて、何百もの他のタスクがOSで実行され、プロセッサの8コアすべてが(8つある場合)、オプティマイザによって割り当てられた8つのスレッドではなく、システムの何百ものスレッドに分割されることになるのです。したがって、8+1または8+8モードでもう1つスレッドを割り当てることは、アプリケーションが8スレッドを割り当てたら、すべてのCPUリソースを100%使用するだろうと素朴に考えるよりも、常に賢明なことなのです。

--

一般に、「システム全体の総時間にはこの時間も含まれるからカウント しない」というような議論を聞くと、興ざめしてしまいます。"newで作成したオブジェクトのメソッドは遅く呼ばれる"という議論も - もしそうなら、一方的にメソッドが遅く呼ばれ、一方的に速く呼ばれるのは不公平なので、今回までにベンチマークを割り引くべきでしょう))))それなら、なぜパフォーマンスに溺れているふりをするのか?ただ、90年代から来た私たちは、「とにかくアセンブラの方が速い!」「ポインタを扱うときは、すべてをコントロールする」という誤ったスローガンしか認めないのです。

--

2点目。V2に注目する。そこにはオブジェクトの削除はなく、意図的な直接のメモリリークがある。それでも、オブジェクトの割り当てには1.4秒かかるのに対し、V1では1.2秒と、削除には全く時間がかからないものの、その差は歴然としています。

fxsaber#:

V3以降の123Mバイトはどこから出てくるのかわからない。

何とも言えませんね。mql仮想マシンの仕様を知っておく必要があります。しかし、このことは開発者以外、誰も知らない。ProcessHackerでの解析から判断すると、* newで選択されたオブジェクトは、何らかのトリッキーな方法で一箇所に個別に割り当てられ、その後、大きな配列として別のメモリ領域に移動されるようです。すなわち、それはいくつかの一時的なオブジェクトか何かである可能性があります。

 
Vasiliy Sokolov #:

いいえ、正解です。そして、これは原則的なポイントです。自動削除は、時間コストが極端にかかるメインスレッドでは行われない。並列スレッドが使用したメモリを戻すのを待たずに、新しい実行を開始することができます。確かにそれも呼び出され、CPUリソースも消費しますが、バックグラウンドで実行されるサイドオペレーションになります。どのような最適化でも、たとえ最も積極的な最適化でも、CPUのリソースの一部は他のスレッドで利用できるようになります。最近のプロセッサーでCPUに100%の負荷をかけるのは、不可能に近い。

--

別の言い方をすると仮に5時間単位で実行するタスクがあるとする。1スレッドで5ユニット、2スレッドでそれぞれ3ユニットと2ユニットで実行できます。明らかに、総実行時間は5ユニットと同じですが、タスクは2番目のケースでは同時進行し、1番目のケースでは同時進行しないため、2番目のケースで必要な物理的時間は2ユニット少なくなります。最適化は、CPUの利用可能な物理コアをすべて占有するという反論があります。しかし、これは事実ではありません。どんな最適化をしても、せいぜいOSのコア数と同じ数のスレッドを割り当てるのが関の山です。しかし、これらのタスクに加えて、何百もの他のタスクがOSで実行され、プロセッサの8コアすべてが(8つある場合)、オプティマイザによって割り当てられた8つのスレッドではなく、システムの何百ものスレッドに分割されることになります。したがって、8+1または8+8モードでもう1つスレッドを割り当てることは、アプリケーションが8スレッドを割り当てたら、すべてのCPUリソースを100%使用するだろうと素朴に考えるよりも、常に賢明なことなのです。

--

一般に、「システム全体の総時間にはこの時間も含まれるからカウント しない」というような議論を聞くと、興ざめしてしまいます。"newで作成したオブジェクトのメソッドは遅く呼ばれる"という議論も - もしそうなら、一方的にメソッドが遅く呼ばれ、一方的に速く呼ばれるのは不公平なので、今回までにベンチマークを割り引くべきでしょう))))それなら、なぜパフォーマンスに溺れているふりをするのか?ただ、私たちは90年代の人間で、「とにかくアセンブラの方が速い!」とか「ポインタを使うと、すべてをコントロールできる」という誤ったスローガンしか認めないのです。

--

2点目。V2に注目する。そこにはオブジェクトの削除はなく、意図的な直接のメモリリークがある。その場合でも、オブジェクトの割り当てに1.4秒かかるのに対し、V1では1.2秒と、削除には全く時間がかかりませんが、その分、時間がかかります。

何とも言えませんね。mql仮想マシンの仕様を知っておく必要があります。そして、このことは開発者以外誰も知らないのです。ProcessHackerでの解析から判断すると、* newで選択されたオブジェクトは、何らかのトリッキーな方法で一箇所に個別に割り当てられ、その後、大きな配列として別のメモリ領域に移動されるようです。すなわち、それはいくつかの一時的なオブジェクトか何かである可能性があります。


では、削除が本スレにない場合、計測に含まれるのと含まれないのでは、何が違うのでしょうか?影響ないような)))))))))です。では、なぜそれを含めて真実を見ようとしないのか。

ところで、ヴァシリー、そこで 質問が待っている(最後の行)。

 
Vasiliy Sokolov #:

...あるいは「newで作成したオブジェクトのメソッドは、より遅く呼び出される」という議論も...。

測定する根性はないのか?お前は空っぽだ バシャ このガラガラ蛇め

 
Dmitry Fedoseev #:

計る度胸はないのか?

寝てしまうのか!?

 
Vasiliy Sokolov #:

寝てしまえばいいんだ!

夢...足を踏み鳴らして...

 
Dmitry Fedoseev #:

では、削除が本スレッドでない場合、計測に含まれるかどうかで何か違いがあるのでしょうか?影響ないような)))))))))です。では、なぜそれを含めて真実を見ようとしないのか。

では、最適化中のエクスプローラー、テレグラム、クロームの実行時間の合計をベンチマークに含めてください。たとえそれらをすべて殺してMTだけを残しても、CPU時間を浪費する他のシステムスレッドが100個はあるはずで、それらも含めてです。

 
Vasiliy Sokolov #:

では、最適化中のエクスプローラー、テレグラム、クロームの実行時間の合計をベンチマークに含めてください。それを全部殺してMTだけにしたとしても、CPU時間を浪費するシステムスレッドが他に100個はあるはずで、それらも含めて。

並列スレッドになっています)))(© Vasya)

 

ヴァーシャ、お前は本当に馬鹿だ!

でも、続けてください、粘ってください。

 
Dmitry Fedoseev #:

ところで、ヴァシリー、そこで待って いる質問がある(最後の行)。

頭空っぽでゼロコーダーの証明はすぐにできる。しかし、あなたが毎年、このフォーラムの文字通りすべてのスレッドを汚していることを証明しているのに、誰が、なぜ、それを必要とするのでしょうか。私はここに何も投稿せずに2年間を費やしてきた、唯一の時折見て - と毎回、すべてのスレッドであなたのスタイルであなたの "権威ある意見 "と、だった "あなたはすべての愚か者だ、何も理解していない、とする方法 - 私は言うことはありません。腐った男だな、デマは。

 
Vasiliy Sokolov #:

バカとコーダーゼロの証明はすぐできるだろ。しかし、あなたが毎年、このフォーラムの文字通りすべてのスレッドに糞をすることを証明したとき、誰がそれを必要としますか。私はここに何も投稿せずに2年間を費やしてきた、唯一の時折見て - と毎回、すべてのスレッドであなたのスタイルであなたの "権威ある意見 "と、だった "あなたはすべての愚か者だ、何も理解していない、とする方法 - 私は言うことはありません。腐った男だな、デマは。

えっ、問題は私が正しいやり方を教えないこと?

はい、そしてあなたはすでにここで何かをとてもよく証明していますね))

腐ってるのは俺か?私がコードを書くと下痢と瘰癧の両方になるのはあなたです。