利用可能な帯域幅を取得するコードを書きたいと思います。 のいずれかを使用していますalgorithm.ex.spruce/pathload.
利用可能な帯域幅
私はWindowsでC++のコードを使いたいと思っていました。 私はLinuxコードを持っています。 しかし、私はWindowsベースのコードを必要としました。
利用可能な帯域幅を取得するコードを書きたいと思います。 のいずれかを使用していますalgorithm.ex.spruce/pathload.
利用可能な帯域幅
私はWindowsでC++のコードを使いたいと思っていました。 私はLinuxコードを持っています。 しかし、私はWindowsベースのコードを必要としました。
どのリソースの帯域幅ですか?これがネットワークリソースであれば、実際の帯域幅の見積もりを与える言語やOSはありません。トラバースする必要があるリンクのもう一方の端に何かを呼び出す必要があり、その時点での帯域幅の見積もりを取得する必要があります。
他の人のインターネット接続のダウンロード速度をテストするには、Webサーバー上のファイルを呼び出す必要があります。得られた数字はその時点で正確であることに留意してください。外部要因が常に帯域幅(他のprorcesses、ユーザーなど)に影響を及ぼすため、実際にリソースを使用すると、リソースの帯域幅が大きくなることがあります。
帯域幅とリソースはなぜ必要ですか?
私はWindowsでコードを欲しいです。C++ – vishal
何のコードですか?あなたは私の根本的な質問に「何のために?」答えなかった。まったく。帯域幅は、指定されたパス上の2つのオブジェクト間でmucデータをどのように転送できるかの尺度に過ぎません。それはI/O、ネットワーク、RAM、等のためになる可能性があります... –
私は質問がそれをすべて与えたと思います。パスロードは、ネットワーク帯域幅を測定する技術です。 –
あなたが尋ねるならば、あなたはそれに気づかないでください。 LinuxをWindowsに変換するには、両方のプラットフォームに関する知識が必要です。
私の経験では、ほとんどすべてのネットワークに適した帯域幅推定アルゴリズム(パスロード、パスチャープなど)は高速帯域幅には適していません。これらの古いアルゴリズムは、帯域幅が約1Mbであれば適切で実用的です。また、これらのアルゴリズムは、ネットワークが「クリーン」(他のトラフィックなし)であることを前提としています。今日、これらの「ネットワークフレンドリー」アルゴリズムのほとんどは実用的ではありません。
netperf、netcpsなどのさまざまな帯域幅推定ツールは、ブルートフォース方式に基づいています。ブルートフォース法はネットワークに優しいものではありません。このアルゴリズムの大部分は、レイテンシ(TCPベースの場合)とhdd読み書き速度(メモリの代わりにhddに書き込む場合)に問題があります。
IMO、最高の帯域幅推定ツールは、高速ネットワーク用に調整されたカスタムメイドの制御フローで、UDPベース(他のトラフィックの影響を受けない)のブルートフォース(tcpとは異なりレイテンシの影響を受けません)です。
その他の問題はコードの最適化です。コードが高度に最適化されていることを確認する必要があります。 c#を使用すると、GCによって問題が発生します。
Ehm、C++?どのようなAPIですか? Win32? MFC? 。ネット? – EboMike
良い質問+1 – Rella