私はDelphi 7(Indyを使用するModBusコンポーネントを含む)でプログラムを作成しました。私のマシンでは、Indy 9を使用し、うまく動作します。これは、ModBusプロトコルを介して他のマシンとうまく通信します。しかし、プログラムが別のマシン上で実行されていると、私は90〜100%のCPU負荷を得ます。残念ながら、このマシンは私のオフィスではなく、 "世界の反対側"にあります。このマシンがインディ9を使用しているのか、インディ10を使用しているのか、どうすればわかりますか?さらに、それがインディ10を実行している場合は、それが問題になる可能性がありますか、これはほとんどありませんか?Indy 9を使用するために私のプログラムで作成した場合、自分のサイトでIndy 10を使用できますか?
答えて
CPU負荷が高い原因を調べるには、AQTimeまたはSamplingProfilerのようなプロファイラを試してみてください。
これは、ほとんどの時間実行されているメソッドを取得します。そうすれば、問題の原因を突き止めることができます。
また、アプリケーションにログを追加することもできます。
決定的な答えは、あなたがインディ9を使用してプログラムをコンパイルした場合でも、パッケージを使用している場合、それを実行するINDY 9を使用しなければならないん
です。 AFAIK、INDY 9を使用して実行可能ファイルをコンパイルし、実行時にINDY 10を使用する方法はありません。偶然にもそれが起こることはありません。
接続の開始/終了などの一連の動作を実行するテストアプリケーションを準備することができます。続行する前に確認を求める(「Continue?y/n」)場合は、重要な操作を検出するたびにCPU負荷を確認できます。
お返事ありがとうございます。私はこれがインディの問題だとは思わない。私のQuad CPU PCでは、CPU負荷も1-2%からaproxに上昇します。 25%。これは、回線を開いたままにしておく(接続した)場合に発生します。ただし、ModBusクライアント側からのポーリングごとにModbusサーバを切断し、そのPCを再接続させると、CPU負荷は常に低くなります。何が普通ですか?常時回線を開いているか、またはすべてのポーリングのために接続と切断を行いますか?ポーリング頻度は、アイドルモード時:2000ms、アクティブモード時:500msです。
クワッドコアのCPUの25%=コアの1つの100% –
プラス:質問に使用されたアカウントでログインしていた場合は、自分の質問に回答を追加する代わりに、それともラベルを変更したのでしょうか?)いずれにしても、StackOverflowを使用すると、質問と回答の長いスレッドを避けるための編集が可能です。 –
あなたは何が起こっているかを確実に知るためにログを追加する必要があります。
これは問題の原因となっている接続そのものですか?それとも接続中に実行される作業ですか?
ログを絞り込むことで、プロセッサを節約できるようにコードを変更することができます。
また、AQTimeまたはSamplingProfilerを使用すると、先に示唆したように役立ちます。
私はいつもすべてのアプリケーションにデフォルトでロギングを追加していますが、その多くはオンにする必要がありますが、そこにはログが必要です。サイト上のソフトウェアが何を変更するかも知れず、単にログを有効にすると、多くの時間を節約できます。
- 1. Indy 10 - IdHTTP.Get "SSLライブラリをロードできませんでした"
- 2. SSLを使用したDelphiとIndy
- 3. 私はlinkinを自分のサイトに統合するためにrailのdeviseを使用できますか?
- 4. Indyを使用してTCP TUNNELINGシステムを作成する
- 5. Gmailを使用DELPHI(Indy)からのTLSを使用した発信SMTP
- 6. Indy 10 for Delphi 7
- 7. Indyでビジュアルコントロールを使用するには? (Delphi)
- 8. Indy 10とソケットオプションを設定する
- 9. Indy 10 Delphi FTP Clientデモエラー
- 10. Delphi - Indy HTTP Clientを使用してサーバーに応答を返す
- 11. Delphi Indy 10 Smtpエラー "現在認証できません"
- 12. この場合、継承または合成を使用すべきですか?
- 13. UpdatePanelを使用したUserControlは、プログラムでScriptManagerを作成できますか?
- 14. MVC-ViewModel + Automapper:Automapperを使用したい場合は、Automapperの使用方法を自分のコードでどのように使うのですか?私は私のPROJEKTするための第1のMVC-ViewModelにおよびEFモデルを使用しています
- 15. LinuxでC++プログラムで使用するためにMONOでdll /ライブラリを作成できますか?
- 16. Delphi 10 Seattleを使用してWindows 10 Mobileアプリケーションを作成できますか?
- 17. フィンドラーでIndyトラフィックを見る
- 18. INDY 10.1.5 - どのSSL dllがDelphi 2006で動作しますか?
- 19. ASP.NETで無料のHTMLエディタを使用して自分のサイトにニュースセクションを作成したい
- 20. 外部サーバーを使わずにIndyでメールを送信する
- 21. ユーザーが自分のサイトにメッセージを残すために使用できるオープンソースライブラリを教えてください。
- 22. 他のユーザーが自分のサイトで使用するために埋め込むためのjsファイル/コードを作成する
- 23. 私は私の預金モデルを作成するために足場を使用しているので、ルート
- 24. weblogicでのlog4jログインの使用9/10
- 25. indy HTTPクライアントとSuperobject DELPHIを使用したrpcサービスとの通信http 400エラーコード
- 26. IIndy 8 to Indy 10 - TIdLogDebugコンポーネントを置き換えるもの
- 27. VCLStylesを使用するためにDelphi TTaskDialogを作成できますか?
- 28. VB.NetでGridViewで自動ソートを使用したい場合
- 29. javascriptを使用して、自分のサイトから開いたウィンドウの要素をクエリできますか?
- 30. Video.JSをオーディオプレーヤーとして使用できますか?私がやった場合
展開された実行可能ファイルについてお話ししていますか?すべてが実行可能ファイルにコンパイルされていませんか? –
はい、ランタイムパッケージを使用していても、コンパイルされたものと同じIndyバージョンでなければなりません。 –