Bonjour à tous,
Ca fait un petit moment que je me prends la tête sur la performance de mon code et notamment la vitesse d'exécution d'une boucle foreach.
J'ai un tableau de taille différente que je parcours dans le but de créer un autre tableau et afin d'insérer le nouveau tableau dans la BDD.
Le problème survient lorsque le tableau arrive à une taille supérieure à 5000 entrées.
Pour donner un ordre d'idée, la durée de la boucle foreach pour un tableau de 16000 entrées met environ 23 secondes à s'exécuter. Au sein de la boucle foreach, je fais 2 appels à la BDD. Chaque requête met moins de 0.001 seconde à s'exécuter. La requête d'insert met quant à elle 0.01 seconde.
Ce que je fais
Voici mon code, modifié car il s'agit d'un projet d'entreprise...
Ce que je veux
Ce que j'aimerais, c'est avoir un temps d'exécution réduit pour les tableaux avec de nombreuses entrées...
Avez-vous une idée de comment faire ?
Merci d'avance pour vos réponses !
2 réponses
Salut !
J'ai déjà essayé en découpant ma data brut en chunks (taille 100). Malheureusement, j'ai toujours un temps d'exécution aussi important voire plus important.
Je pense que la classe parallel de PHP que tu me donnes comme exemple serait une bonne chose. Le problème, c'est que notre serveur tourne sous PHP 7.1.
Si je n'ai pas d'autres solutions, je vais essayer de mettre en place quelque chose qui ressemble à ceci