Portuguese, Brazilian subtitles

← 03-04 Batching_and_Caching

03-04 Batching_and_Caching

Get Embed Code
13 Languages

Showing Revision 16 created 02/21/2016 by PRT_pt-br_3.

  1. Eu quero lhe apresentar as minha duas
    técnicas de desempenho favoritas,
  2. batching e caching.
  3. Como já falamos, algumas funções
    ou operações
  4. têm uma quantidade específica de
    sobrecarga envolvida
  5. que é diferente dos custos
    do desempenho da operação em si.
  6. Por exemplo, carregar dados em um novo
    local na memória antes de executá-la,
  7. ou ordenar um conjunto de valores
    antes de fazer uma pesquisa por ela.
  8. Quando executada múltiplas vezes,
    onde múltiplas são mesmo muitas,
  9. esta sobrecarga pode causar um sério
    problema de desempenho para o seu app.
  10. Batching é o processo de
    reparar este problema de desempenho
  11. tentando eliminar a sobrecarga
    pela execução destas operações,
  12. como dividir um carro em vez de cada um
    conduzir sozinho, poupando combustível.
  13. Isto é o mais comum de se ver em um código
    onde você tem de preparar seus dados
  14. antes de realmente operar nele.
  15. Agora, por exemplo, digamos que a forma
    mais eficiente de encontrar um valor
  16. existente num conjunto é ordenar ele, e
    depois executar uma pesquisa binária nele.
  17. Agora, espere, na verdade, esta não é
    a forma mais eficiente,
  18. mas fique comigo,
    estou tentando demonstrar algo.
  19. Bem, a forma mais simples de fazer isto
    seria escrever uma função onde,
  20. dado um conjunto e um valor,
  21. vai ordenar o conjunto e depois pesquisar
    para ver se o valor existe nele.
  22. Agora, isto pode funcionar em
    alguns níveis de desempenho,
  23. mas, digamos que você tem
    cerca de 10.000 valores que quer testar,
  24. e, o tamanho do conjunto
    é na ordem dos milhões.
  25. Subitamente, você incorre em
    muitas sobrecargas por teste
  26. na forma da ordenação.
  27. A resposta aqui é muito clara.
  28. Você iria querer criar uma versão
    ordenada do conjunto uma vez,
  29. e depois permitir que os 10.000 valores
    sejam testados para inclusão após isso.
  30. Isto é batching em ação.
  31. Nós fatoramos a operação que
    é repetida e fazemos isso uma vez.
  32. Agora, semelhante a isso é
    um conceito conhecido como caching
  33. e que é de longe a mais importante técnica
    de desempenho que você pode enterder,
  34. principalmente porque ela dirige tudo
    na tecnologia moderna de computadores.
  35. Considere seu computador, por exemplo.
  36. O objetivo da sua RAM é fornecer
    um lugar para armazenar informação
  37. que é mais rápida de acessar
    pela CPU do que pelo HD.
  38. Ou considere a rede, e
    olhe para a internet moderna,
  39. enormes armazéns de servidores chamados
    data centers existem em todo o mundo.
  40. Sua única finalidade é armazenar em cache
    conteúdo acessado com frequência
  41. para que seu computador não tenha de acessar
    um servidor a 12.000 milhas de distância
  42. cada vez que seu amigo no Egito
    posta uma foto.
  43. Bem, a não ser, claro, que você esteja
    no Egito, mas você percebeu a ideia.
  44. Agora, em seu código, o lugar mais comum
    onde você pode encontrar otimizações
  45. para caching tem a ver com dados que
    são calculados múltiplas vezes,
  46. mas, o resultado é sempre o mesmo.
  47. Por exemplo, se você está no meio
    de um loop onde está calculando
  48. a derivada de uma matriz
    quatro por quatro,
  49. e esse resultado é sempre o mesmo, então
    você está desperdiçando desempenho,
  50. recalculando o mesmo em
    cada iteração desse loop.
  51. Em vez disso, calcule e salve os
    resultados dessa derivação fora do loop,
  52. e depois deixe as porções interiores do loop
    acessar os resultados de referência.
  53. A razão porque adoro batching
    e caching é porque
  54. quase qualquer melhoria de desempenho
    que você possa pensar,
  55. incluindo as que estamos
    falando neste curso,
  56. é efetivamente uma variação
    destas duas técnicas básicas.
  57. E se você quer mesmo
    se tornar um ninja do desempenho,
  58. então é melhor se tornar um pro
    no que significa alavancar
  59. o imenso poder destas técnicas.
  60. Então, vamos começar.