ホームページ > バックエンド開発 > Golang > Go でスライスを効率的にチャンクする方法は?

Go でスライスを効率的にチャンクする方法は?

Linda Hamilton
リリース: 2024-12-28 10:10:11
オリジナル
465 人が閲覧しました

How to Efficiently Chunk a Slice in Go?

Go でのスライスのチャンク化

これまでに遭遇したように、Go でのスライスのチャンク化は次の手順で実行できます。

  1. チャンク サイズを決定します:元のスライスの長さを使用する CPU の数で割ることにより、希望のチャンク サイズを求めます。
  2. スライスの反復: for ループを使用して、元のスライスを反復します。インデックス 0 から。
  3. 新しいスライスを作成します: チャンクごとに、新しいスライスを作成して、チャンク化された要素。
  4. チャンクを追加: チャンク化された要素を新しいスライスに追加します。
  5. 分割スライスに追加: 新しく作成されたスライスを追加します分割されたスライス。最後のチャンクが保持されます。

コードに基づいて更新された例を次に示します:

var divided [][]string

numCPU := runtime.NumCPU()
chunkSize := (len(logs) + numCPU - 1) / numCPU

for i := 0; i < len(logs); i += chunkSize {
    end := i + chunkSize

    if end > len(logs) {
        end = len(logs)
    }

    temp := logs[i:end]  // Create a new slice for the chunk
    divided = append(divided, temp)  // Append the chunk to the divided slice
}
ログイン後にコピー

以上がGo でスライスを効率的にチャンクする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート