は、私は私のファイルのサイズが628MB
を持っている場合はAzureのブロブストレージに最適な実行タスク数はどれくらいですか?
private const long MaxChunkSize = 1024 * 1024 * 4; // 4MB
private void UploadPagedDataToBlob(...)
{
...
List<Task> list_of_tasks = new List<Task>();
do
{
var stream = new MemoryStream(data, index, (int)blockSize);
var task = _blob.WritePagesAsync(stream, startPosition, null);
list_of_tasks.Add(task);
...
}
while (remainingDataLength > 0);
Task.WaitAll(list_of_tasks.ToArray());
}
をデータを書き込み、次のアルゴリズムを持っている=>その後、list_of_tasks
が157
タスクを持っている(628/MaxChunkSize)。通常、1 TB以上のファイルがあります。私は、より多くの効率的なアルゴリズムを作成する方法は、多くの実行タスクを持ってしたくないですか?最適な実行タスク数は何ですか?たとえば、200以上の推奨事項はありませんか?
です。リモートシステムは接続を制限することがあります。単一のCPU上では、CPUにバインドされている場合はコアに制限することができます。私たちは '_blob'が何であるか分かりませんので、答えにくいです。一般的には、Parallel.ForやTPL DataFlowを使用する方が良いでしょう。そして、TPLは一度に実行するタスクの数を決定します。 –
私はある時に戻って同様の質問に答えました。参考になるかもしれません:http://stackoverflow.com/a/32252521/1835769 – displayName
あなたは私たちではなくあなたのシナリオに最適なタスク数を決定するために実験を行うことができます。実験を設計し、慎重に実行すると、その答えを知ることができます。 –