Maison > développement back-end > Golang > Comment découper efficacement une tranche en un instant ?

Comment découper efficacement une tranche en un instant ?

Linda Hamilton
Libérer: 2024-12-28 10:10:11
original
550 Les gens l'ont consulté

How to Efficiently Chunk a Slice in Go?

Découpage de tranches dans Go

Comme vous l'avez rencontré, le découpage d'une tranche dans Go peut être réalisé en suivant les étapes suivantes :

  1. Déterminez la taille du morceau : Calculez la taille du morceau souhaitée en divisant la longueur de la tranche d'origine en fonction du nombre de processeurs que vous souhaitez utiliser.
  2. Itérer sur la tranche : Utilisez une boucle for pour parcourir la tranche d'origine, en commençant à partir de l'index 0.
  3. Créer une nouvelle tranche : Pour chaque morceau, créez une nouvelle tranche pour stocker le morceau éléments.
  4. Ajouter des morceaux : Ajouter les éléments fragmentés à la nouvelle tranche.
  5. Ajouter à la tranche divisée : Ajouter la tranche nouvellement créée à la tranche divisée, qui contiendra les tranches finales en morceaux.

Voici un exemple mis à jour basé sur votre code :

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
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal