Go でのスライスのチャンク化
約 210 万の文字列のスライスを均等に分散されたチャンクに分割したいとします。提供されているコード セグメントは、文字列を均等に分散するのではなく、最初のチャンクを複製する手法を利用しています。
解決策は、新しいスライスを作成するのではなく、分割されたスライスにログのスライスを追加することです。 CPU の数とスライスの長さに基づいてチャンク サイズを計算することで、ログをチャンク全体に均等に分散できます。
変更されたコード:
var divided [][]string chunkSize := (len(logs) + numCPU - 1) / numCPU for i := 0; i < len(logs); i += chunkSize { end := i + chunkSize if end > len(logs) { end = len(logs) } divided = append(divided, logs[i:end]) }
このアプローチにより、文字列がチャンク全体にできるだけ均等に分散され、パフォーマンスとシステム リソースの使用率が最大化されます。
以上がGo で文字列の大きなスライスを効率的にチャンク化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。