Resolver esses exercícios ajudará na fixação do conteúdo abordado na Aula 05.
1 - 1. A Pirâmide de Alta Performance (Básico 1)
Contexto:
Um programador ingênuo acha que "variável vai na memória". Um engenheiro de software C/C++ sabe em qual camada a variável se hospeda:
Pergunta: Descreva o conceito fundamental de 1. A Pirâmide de Alta Performance e liste duas vantagens de seu uso.
2 - 2. Os Impactos da Latência (Lado do Código) (Básico 2)
Contexto:
Quando escrevemos um código com constantes consultas não linearizadas ao Banco de Dados (ou SSD local), pagamos a mais cara taxa processual: o I/O disk penalty.
Pergunta: Descreva o conceito fundamental de 2. Os Impactos da Latência (Lado do Código) e liste duas vantagens de seu uso.
3 - 3. Optimizando Uso (Intermediário 1)
Contexto:
Por que linguagens como C e C++ dominam infraestrutura de servidores High Frequency Trading?
Pergunta: Analisando o funcionamento de 3. Optimizando Uso, como essa métrica interage em um ambiente prático de compilação ou execução de código C/C++ a nível de sistema operacional?
4 - Resumo Prático (Intermediário 2)
Contexto:
Se processadores hoje são mísseis atingindo +4GHz, a RAM parou no tempo (Latência de CAS não baixa proporcionalmente).
Pergunta: Analisando o funcionamento de Resumo Prático, como essa métrica interage em um ambiente prático de compilação ou execução de código C/C++ a nível de sistema operacional?
5 - 1. A Pirâmide de Alta Performance (Desafio)
Contexto:
Um programador ingênuo acha que "variável vai na memória". Um engenheiro de software C/C++ sabe em qual camada a variável se hospeda:
Pergunta (Desafio): Elabore um cenário de arquitetura onde o uso incorreto ou a falta de entendimento de 1. A Pirâmide de Alta Performance cause um problema grave de performance ou vazamento de memória. Como você mitigaria estruturalmente esse gargalo?
📚 Gabarito e Solução Comentada
Gabarito Explicado Abaixo estão as respostas esperadas e o embasamento teórico para os exercícios propostos na **Aula 05**. !!! success "Solução da Questão 1 - 1. A Pirâmide de Alta Performance (Básico 1)" **Explicação Detalhada do Assunto:** Um programador ingênuo acha que "variável vai na memória". Um engenheiro de software C/C++ sabe *em qual camada* a variável se hospeda: !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *1. A Pirâmide de Alta Performance* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel. !!! success "Solução da Questão 2 - 2. Os Impactos da Latência (Lado do Código) (Básico 2)" **Explicação Detalhada do Assunto:** Quando escrevemos um código com constantes consultas não linearizadas ao Banco de Dados (ou SSD local), pagamos a mais cara taxa processual: o I/O disk penalty. A instrução e os dados descem da L3, saltam para L2, descem para L1 e se acoplam na ALU. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *2. Os Impactos da Latência (Lado do Código)* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel. !!! success "Solução da Questão 3 - 3. Optimizando Uso (Intermediário 1)" **Explicação Detalhada do Assunto:** Por que linguagens como C e C++ dominam infraestrutura de servidores High Frequency Trading? Porque elas permitem `Alocação Estática e Constante` que é perfeitamente "encaixada" pelo compilador diretamente na memória **Cache**. Ao invés de carregar gigabytes de *Strings* na lenta RAM, as linguagens de baixo nível incentivam o uso de matrizes de tamanho delimitado (arrays fixos), cujo agrupamento contíguo força a arquitetura de **Hardware Prefetching** a adiantar os bytes do Array para a Cache nativamente, antes mesmo de você rodar a linha do código! !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *3. Optimizando Uso* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel. !!! success "Solução da Questão 4 - Resumo Prático (Intermediário 2)" **Explicação Detalhada do Assunto:** - Se processadores hoje são mísseis atingindo +4GHz, a RAM parou no tempo (Latência de CAS não baixa proporcionalmente). - Tudo recai na técnica humana de amarrar dados juntos (Caches L1 e L2) e escrever *data-oriented code* se quiser ultra-latência C++. !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *Resumo Prático* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel. !!! success "Solução da Questão 5 - 1. A Pirâmide de Alta Performance (Desafio)" **Explicação Detalhada do Assunto:** Um programador ingênuo acha que "variável vai na memória". Um engenheiro de software C/C++ sabe *em qual camada* a variável se hospeda: !!! info "Expectativa de Resposta" O aluno deve inferir com clareza que o conceito de *1. A Pirâmide de Alta Performance* determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel. --- [:octicons-arrow-left-24: Voltar para Exercício](exercicio-05.md){ .md-button }