French subtitles

← 03-04 Batching_and_Caching

03-04 Batching_and_Caching

Get Embed Code
13 Languages

Showing Revision 4 created 01/20/2016 by QA_SP_4_FR.

  1. Je tiens à vous présenter mes deux
    techniques d'optimisation préférées,
  2. le traitement par lot et la mise en cache.
  3. Comme on l'a déjà dit,
    certaines fonctions ou opérations
  4. comportent une quantité
    spécifique de surcharge intrinsèque
  5. qui diffère de la surcharge
    due à l'exécution de l'opération en soi.
  6. Par exemple, réadresser des données
    dans la mémoire avant leur exécution,
  7. ou trier un ensemble de valeurs avant
    d'y faire une recherche.
  8. Lorsqu'on les exécute plusieurs fois,
    ici « plusieurs » c'est de gros chiffres,
  9. cette surcharge peut devenir un fardeau
    pour l'exécution de votre application.
  10. Le traitement par lot est le processus
    qui corrige ce problème de performance
  11. en essayant d'éliminer la surcharge
    d'exécution de chaque opération,
  12. un peu comme covoiturer au lieu d'avoir
    chacun sa voiture, pour l'essence.
  13. Cette pratique apparaît en codage
    quand on doit « préparer » ses données
  14. avant de les traiter concrètement.
  15. Par exemple, disons que la meilleure façon
    de trouver une valeur
  16. dans un ensemble est de le trier
    puis d'exécuter une recherche binaire.
  17. Enfin, ce n'est pas vraiment
    la plus efficace des méthodes,
  18. mais restez avec moi,
    je tente de m'expliquer.
  19. La façon la plus « simple » ici
    serait de coder une fonction qui,
  20. avec une consigne et une valeur données,
  21. trierait l'ensemble puis
    chercherait à voir si la valeur y est.
  22. Ça peut convenir
    à certains niveaux de performances,
  23. mais mettons qu'on ait
    10 000 valeurs à tester,
  24. et que la taille de l'ensemble
    se compte en millions.
  25. Tout d'un coup, on se retrouve
    avec une tonne de surcharge par test
  26. sous la forme du tri.
  27. La réponse ici est assez claire.
  28. Il faut créer une version triée
    de tout l'ensemble mais une seule fois
  29. et ensuite, tester les 10 000 valeurs
    à inclure après ce point.
  30. C'est le traitement par lot en action.
  31. On factorise l'opération qui se répète
    pour ne l'appliquer qu'une fois.
  32. Un concept similaire à ça est en fait
    la mise en cache,
  33. c'est de loin la technique d'optimisation
    la plus importante à comprendre,
  34. notamment car elle dicte tout
    dans la technologie informatique moderne.
  35. Prenez votre ordinateur, par exemple.
  36. La seule raison d'être de la mémoire vive,
    c'est d'avoir un stock d'informations
  37. qui soit plus rapide d'accès pour l'UC
    que le disque dur.
  38. Observez les réseaux et notamment
    internet tel qu'il est actuellement,
  39. il y a d'énormes entrepôts de serveurs ou
    centres de données dans le monde entier.
  40. Leur seul but est de stocker, de mettre
    en cache, le contenu fréquemment consulté
  41. pour que votre ordinateur n'ait pas
    à joindre un serveur à 19 000 km d'ici
  42. dès que votre ami en Égypte
    publie une photo.
  43. Sauf si vous y êtes déjà, bien sûr,
    mais bon, on s'est compris.
  44. Dans un code, le lieu le plus courant
    où trouver une optimisation
  45. pour de la mise en cache, concerne
    les données calculées plusieurs fois,
  46. mais dont le résultat
    est toujours le même.
  47. Par exemple, au beau milieu
    d'une boucle que vous calculez
  48. la dérivée d'une matrice carrée
    d'ordre quatre,
  49. si le résultat est toujours le même,
    vous y perdez en performance,
  50. puisque vous la recalculez
    à chaque itération de la boucle.
  51. Calculez et enregistrez les résultats
    de la dérivation en dehors de la boucle
  52. et la portion interne à la boucle n'aura
    qu'à appeler ce résultat mis en cache.
  53. Si j'aime le traitement par lot
    et la mise en cache, c'est parce que
  54. quasiment toutes les optimisations
    de performances imaginables,
  55. y compris celles
    dont on parlera dans ce cours,
  56. ne sont que des variantes
    de ces deux techniques de base.
  57. Et si vous voulez vraiment
    devenir un ninja de la performance,
  58. alors il vaut mieux devenir un pro
    de ce que signifie exploiter
  59. la puissance impressionnante
    de ces techniques.
  60. Donc, commençons.