Palestra apresentada no 12º Encontro de Programadores C e C++, realizado no Rio de Janeiro no dia 15 de Agosto de 2015.
Vídeo da apresentação em https://youtu.be/JjANXR-diTM?t=18382
Venha conhecer e viver ativamente a grande revolução que o PHP vem fazendo no mundo de desenvolvimento de websites e softwares há aproximadamente 20 anos, entendendo como que as coisas funcionam e como que você pode se encaixar e colaborar neste incrível mundo.
Venha conhecer e viver ativamente a grande revolução que o PHP vem fazendo no mundo de desenvolvimento de websites e softwares há aproximadamente 20 anos, entendendo como que as coisas funcionam e como que você pode se encaixar e colaborar neste incrível mundo.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Dicas para desenvolvedores que querem fazer uma Web rápida e divertida.
Explicações sobre HTTP, HTML, CSS, JavaScripts, ferramentas e bibliotecas que fazem nossa vida mais fácil
Uma visão geral do que é necessário na grande maioria dos projetos de IoT e ninguém conta.
Definindo em 5 partes os componentes do projeto:
* Coisa
* Conectividade e Comunicação
* Backend
* Frontend
* Analise de dados
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
Apresentação sobre o uso de Docker e Docker Compose na criação de ambientes de Desenvolvimento e Testes utilizando tecnologias de bancos de dados como SQL Server, PostgreSQL e MongoDB. Palestra realizada durante o Database Weekend 2019, um evento que aconteceu na cidade de Campinas-SP no dia 27/07/2019.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Dicas para desenvolvedores que querem fazer uma Web rápida e divertida.
Explicações sobre HTTP, HTML, CSS, JavaScripts, ferramentas e bibliotecas que fazem nossa vida mais fácil
Uma visão geral do que é necessário na grande maioria dos projetos de IoT e ninguém conta.
Definindo em 5 partes os componentes do projeto:
* Coisa
* Conectividade e Comunicação
* Backend
* Frontend
* Analise de dados
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
Apresentação sobre o uso de Docker e Docker Compose na criação de ambientes de Desenvolvimento e Testes utilizando tecnologias de bancos de dados como SQL Server, PostgreSQL e MongoDB. Palestra realizada durante o Database Weekend 2019, um evento que aconteceu na cidade de Campinas-SP no dia 27/07/2019.
2. Eu, eu e eu
• Mantenho o site www.1bit.com.br, onde escrevo sobre
C++
• Co-Fundador do grupo C & C++ Brasil e owner da lista
• Microsoft MVP em Visual C++
• Sócio Programador da Intelitrader e da BitForge
• Server side
• Uso C++ porque resolve meus problemas, uso bastante
Python também
• mercado financeiro segurança da informação mercado financeiro segurança da
informação .NET segurança da informação mercado financeiro
• Windows ou Linux? Eu fico com os dois, porque ainda
não estudei BSD ou OSX
9. Boost
• Conjuntos de bibliotecas portáveis para C++
• Multiplataforma e multicompiladores
• Científica e prática, tem pra todos
• Bibliotecas em vários domínios
10. Algumas bibliotecas
• Tokenizer
• Interprocess
• Math (matrizes e outros
• Date Time)
• Memory (smart_ptr,
pool)
• State Machines
• Program Options
• Asio (comunicação via
TCP/IP
• filesystem
• Containers
• lexical_cast
• string, regex
• GIL
• Property Map
11. boost::asio
• Biblioteca de networking no boost
• Simples, poderosa, multiplataforma e
assíncrona
• TCP/IP
• Boa documentação, como quase tudo no
Boost
14. IP
• Pacote pra lá, pacote pra cá
• Mande e reze
• Cuida basicamente dos endereços e da
fragmentação
• Não garante quase nada
– Não garante entrega
– Não garante ordem ou “não-duplicidade”
– Não garante integridade dos dados
15. UDP
• Pacote pra lá, pacote pra cá
• Mande e reze
• Introduz o conceito de portas
• Não garante entrega nem ordem, mas garante
integridade dos dados (se eles chegarem)
16. TCP
• Uma conexão é estabelecida
• Garante ordem, entrega, integridade
18. Socket
• A tradução literal é “soquete”
• Fluxo de dados indo e vindo (full duplex)
• E é isso
19. Como planejar um servidor
• TCP ou UDP?
• Quantos clientes?
• Latência ou thoughput?
• Protocolo
– Request/Response?
– Assinaturas
– Binário
• E os cabeçalhos?
– Texto
• Qual o separadors
20. Patterns comuns para protocolos
• Baseado em texto, com separador
– O separador é geralmente rn
– Exemplo: HTTP
• Binário, com o tamanho especificado em um
header
– Exemplo: TCP, UDP
• Em todos os casos É NECESSÁRIO ACUMULAR OS
DADOS QUE CHEGAM.
• Você pode até saber que vai receber 1000 bytes. Seu
cliente pode enviar 1 de cada vez.
21. Estratégias para servidores
• Síncrono
– Um processo/task por cliente (fork)
– Uma thread por cliente
• Assíncrono
– Uma thread trata todo mundo
– Thread pool, cliente com afinidade
– Thread pool, sem afinidade
24. UDP vs TCP
• UDP, por não dar muitas garantias, é mais rápido
• Exemplos de uso
– UDP
• DNS
• VoIP
• Streaming
– TCP
• HTTP
• FTP
• Quase todo o resto