recherche

Maison  >  Questions et réponses  >  le corps du texte

php - Qu'est-ce qui est le plus rapide, for ou foreach?

Lequel a les meilleures performances, pour ou pour chaque ? Ou ont-ils leurs propres avantages dans le traitement de différentes données ? J'espère que quelqu'un pourra me donner une réponse.

伊谢尔伦伊谢尔伦2831 Il y a quelques jours643

répondre à tous(3)je répondrai

  • 为情所困

    为情所困2017-05-16 13:10:54

    Pour les structures de données telles que ArrayList accessibles de manière aléatoire à l'aide d'indices, l'accès à l'aide d'indices est plus rapide que l'accès séquentiel à l'aide de foreach. foreach est écrit de cette manière, et le processus utilisé génère un objet supplémentaire Enumerator, et chaque accès nécessite plus d'opérations, réduisant les performances. ArrayList这样的可使用下标进行随机访问的数据结构,使用下标访问,要比foreach的方式进行顺序访问,速度要快一些。foreach这样写法,使用的过程产生一个额外的对象Enumerator,而且每次访问需要更多的操作,降低性能。

    foreach是通过GetEnumerator获得一个IEnumerator对象,通过IEnumerator对象执行MoveNext()方法和获取Current属性进行遍历的。

    由于Enumerator中,做了版本检查处理的工作,所以使用foreach线程安全

    所以for的效率通常来说是高于foreach的,但话也不能说是绝对。

    那么如何选择呢?我的建议是,在一些全局的,多线程可以访问的数据结构对象,使用foreach。而对本地变量,则使用for

    foreach obtient un objet IEnumerator via GetEnumerator et exécute MoveNext() via IEnumerator code> objet. code> et obtenez l'attribut Current pour le parcours.

    Puisque Enumerator effectue le travail de vérification de version, l'utilisation de foreach est thread safe

    Donc, l'efficacité de for est généralement supérieure à celle de foreach, mais on ne peut pas dire qu'elle soit absolue. 🎜 🎜Alors comment choisir ? Ma suggestion est d'utiliser foreach pour certains objets de structure de données globales accessibles par plusieurs threads. Pour les variables locales, utilisez for, qui prend en compte à la fois l'efficacité et la sécurité ! 🎜 🎜 🎜Mise à jour : je viens de vérifier les informations et j'ai découvert que pour les tableaux supérieurs à 10 W, foreach est plus efficace, mais pour les tableaux de 1 W, for est toujours plus efficace. 🎜http://blog.csdn.net/w2cschoo...🎜

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-16 13:10:54

    foreach
    Surtout en php7, après avoir modifié la structure des données du tableau, foreach est plus rapide

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:10:54

    Il est préférable d'utiliser foreach pour parcourir le tableau. Après tout, il n'est pas nécessaire de compter le tableau en premier.

    répondre
    0
  • Annulerrépondre