Confio em pessoas que: quando vão citar linguagens de programação começam por go 🥸
@victoraraujo1255Күн бұрын
Obrigado Pedro, agora não vou conseguir dormir até saber o porque que uma divisão é tão custosa a nível de assembly... Brincadeiras a parte, mais um ótimo vídeo como sempre
@vinimooraessКүн бұрын
Acho que seria pelo mesmo motivo que pra gente é mais fácil multiplicar algo por 3 do que dividir por 3: Pra multiplicar vc só precisar somar x + x + x. Ja pra dividir é um processo mais iterativo, tem que multiplicar o 3 pelo maior numero divisivel por x, anotar qual numero foi, pegar o restante, colocar um 0 do lado, e repetir o processo n vezes até chegar na precisão desejada ou no resultado.
@homerobaroni1655Күн бұрын
Luajit é brabo, já superou C em alguns casos
@erosserver8142Күн бұрын
Acho que você deveria fazer a mesma mudança no Rust e veja a diferença.
@phenpessoa17 сағат бұрын
Não tem diferença. O código de máquina (assembly) é o mesmo. O compilador de rust faz a otimização automaticamente.
@thejman4466Күн бұрын
Fala, Pedro. Você já fez um vídeo sobre profilling em aplicações Go? Seria bacana esse conteúdo vindo com sua didática.
@TheRobsantos7772 күн бұрын
Eu nem acredito mais nesses benchmarks, se fazer loops em C usando a biblioteca stdio.h ela vai ficar mais lenta, e sabemos que uma aplicação complexa em C++ com um bom time de programadores vai ser mais performática que zig por diversos fatores, BENCHMARKS só são numeros.
@CapiEtheriel2 күн бұрын
to chocado que `tmp = a[i]; tmp = 0` altera o valor de `a[i]`. eu esperava que alterasse o valor de `tmp`, mas não de `a[i]`.
@phenpessoa2 күн бұрын
tmp = 0 não altera o valor de a[i] não.
@fudencio2 күн бұрын
caras e bocas nessa thumbnail e conteudo meio DÉVI EXCUTA SÓ
@rodrigochaves2042 күн бұрын
Pessoal estou precisando de um freelance em go ou rust, contratei um cara para fazer um bot de arbitragem para mim no 99 frellas, ta com problema em conectar o websocket em 1 corretora, ta complicado resolver, so gastei dinheiro.
@jcbritobr2 күн бұрын
não tem mensagem de erros de compilação também.
@douglas50092 күн бұрын
3:54 tentei reproduzir o benchmark do código Go, com e sem a modificação que mostrou no vídeo, porém não chegou nem perto do 614.9ms. O que consegui foi: antes: 2.329 s depois: 2.105 s Usando a versão go1.23.4 linux/amd64.
@NetinhoTeixeiraКүн бұрын
Acho que a máquina utilizada também influencia.
@manoelnt021 сағат бұрын
@@NetinhoTeixeira sem dúvidas influencia! Com certeza!
@ruanpetterson20722 күн бұрын
Uma correção: Rust tem bastante potencial em ser mais performático sim em relação a C. Isso acontece muitas vezes por causa das otimizações do LLVM com pointer aliasing. Enquanto em Rust essa marcação é feita automaticamente com ajuda do borrowck, em C isso é manual e muitas vezes negligenciada.
@gabrielmendes59932 күн бұрын
@phenpessoa estava aprendendo GO com seu curso na rocketseat , estava gostando e aprendendo muito ! vai ter mais ???
@luisfernandomoraes97782 күн бұрын
Mostra como tu aplicou o profiling pra descobrir a otimização mano! Show de bola o conteudo, parabéns!
@segredosdefamilia96852 күн бұрын
Se fizer isso com apenas 1000 iteracoes no loop, melhor com ou sem a otimização?
@phifnmg2 күн бұрын
Cada conteúdo que o Pedrão posta e fantástico !
@hououink2 күн бұрын
"O compilador de Go é escrito em Go"... eu não sei se eu fico feliz ou fico com medo
@filipedias67072 күн бұрын
Nossa, tu matou uma dúvida que tava a muito tempo na minha cabeça. Esse vídeo tá bom demais 🤌
@WendelBrito-s8s3 күн бұрын
Sobre o comentario final, Zig, Rust e C estão praticamente empatados po, ou 0,518 é muita diferença para 0,515 ou 0,510 ? rsrs
@MarceloSantosSCS3 күн бұрын
Parabéns pela didática, o vídeo inteiro é show de bola. Apenas uma curiosidade: Que editor de código tu usa? Me parece VSCode. Achei maneiro a forma como ele destaca as nuances das linguagens.
@sandhilt3 күн бұрын
Por padrão, se eu vejo Promise, já sei que pode dar erro.
@RegianeCabrall3 күн бұрын
Caraca, muito louco! Minha curiosidade me fez chegar até aqui , gosteii do video.
@_samuelcamilo3 күн бұрын
Parabéns mano, que conteúdo topppp!
@leandrocavalcante7693 күн бұрын
topssimo! massaaaaaaa
@jcbritobr3 күн бұрын
Rust faz muitas otimizações. Muitas mesmo. Eu não vejo esses bench porque é tudo meio inútil. No final, o que conta mesmo é a capacidade do compilador gerar assembly.
@avilyre3 күн бұрын
Pedro brabo demais! Virei fã so com esse vídeo
@leandrocavalcante7693 күн бұрын
massa!
@ViniciusCosta-bi9bq3 күн бұрын
Porque gostam de zoar python de graça?
@feliperesende45053 күн бұрын
O que muita gente não entende é que algumas linguagens PRECISAM ser mais lentas para conseguir oferecer certas features, favorecer certos designs ou conseguir rodar em ecossistemas muito específicos. Você troca performance por praticidade.
@tiagobecker86173 күн бұрын
Parabéns, conhecimento tacito, fluido e sem enrolação. Muito bom!
@casadogaspar3 күн бұрын
Se algu\em tiver paciencia de testar printando de formas diferentes provavelmente vai conseguir tempos diferentes e ate melhores. PS (nao sei onde esse teclado tem os acentos haha)
@SrAzion3 күн бұрын
Muito bom. Ficou boa explicação 5:56 todo mundo esquece do AsM
@ethi81283 күн бұрын
tua didática é fenomenal. ultimamente tá difícil eu ficar focado em um vídeo de 10min sem perceber kkkk mas acabei vendo teu vídeo completo sem pular nada e sem nem perceber o tempo passar kkkk
@gabrielkemmer3 күн бұрын
Isso é verdade vi o vídeo todo e nem me liguei que passaram 10 minutos
@faustoyuuki68262 күн бұрын
eu n fazia ideia q o video teve 10min, mas msm assim eu tive q colocar a velocidade em 1.3x pq c n eu n consigo ficar focado. Tenho q parar de ver tiktok e ler mais livros para ter o foco de volta
@ethi81282 күн бұрын
@faustoyuuki6826 larguei do tiktok por isso. tava acabando com o meu foco. impaciência tava explodindo em mim.
@cferrado3 күн бұрын
comparação complexa, luajit mesmo pode ser mais rápido que quase qualquer linguagem não compilada... até cair num NYI, alocar num loop, ou precisar de threads
@emanoelinfinity3 күн бұрын
Esse vídeo é excelente para os iniciantes emocionados. Claro que esses comparadores não servem pra nada*, e o mais importante é saber porque.
@smanzoli3 күн бұрын
Python se compilado (e é muito fácil JIT no Python), ele fica muito rápida, cerca de apenas 4x mais lento que C... ou igual C não otimizado. As pessoas esquecem que um código Python do mundo real está na verdade rodando C a imensa parte do tempo.
@PabloGeokar3 күн бұрын
Eu já tentei aprender assembly por curiosidades mas está muito além do meu pobre conhecimento 😢
@HugoNathanBR3 күн бұрын
Conteúdo excelente!!!
@phenpessoa3 күн бұрын
Obrigado!
@017chestera3 күн бұрын
Eu tô longe desse nível, sou iniciante, mas ele explica muito bem
@MayconRodrigues13 күн бұрын
Eu já estava desconfiando. Meu código em Go é sempre mais rápido do que outros códigos que fazem a mesma coisa. É tudo questão de saber otimizar o código e não esperar pelo compilador. Neste caso Java seria mais rápido porque a JVM otimiza o código.
@joaoantoniocabral3 күн бұрын
Uma vez teve um evento com um desafio de criar uma API onde seria executado um teste de stress e comparado as performances. O pessoal conseguiu boas performances com algumas linguagens não tão famosas por performance. Não lembro o nome do evento (tentei pesquisar rápido aqui), mas eram testes reais como consulta em uma API que buscava no banco de dados, salvava dados e etc.
@Mth-Ryan3 күн бұрын
Muitas linguagem que são consideradas lentas se dão bem nesse tipo de teste por um motivo muito simples: as bibliotecas que utilizam para comunicação http são escritas em c ou outra línguagem de sistemas. Na verdade esse é o caso ideal para linguagens de script como python ou ruby. Criar bibliotecas performática em c como o web server pulma e montar sua aplicação em torno delas. Infelizmente com a hiper especialização dos programadores isso se perdeu um pouco. Hoje vemos aberrações como o compilador de typescript sendo escrito nele mesmo. Vai entender.
@brunof2p3 күн бұрын
Tem a rinha do backend que o akita fez uns 3 vídeos sobre, no final ele conseguiu obter pontuação máxima em todas as linguagens da rinha
@joaoantoniocabral3 күн бұрын
@@brunof2p exato, era esse que queria lembrar mas não lembrava o nome!
@richardelesbao3 күн бұрын
Mas naquele desafio não era muito com a linguagem em si, e sim saber usar atomicidade do banco de dados
@shark3ds4983 күн бұрын
Demais esse video!
@paulobitfranca3 күн бұрын
O motivo de Rust ser mais rápido do que Golang não é apenas pelo fato de RUST não ter GC. A prioridade de Golang é ter uma compilação rápida. Já Rust abre mão da velocidade de compilação em favor de executar uma otimização brutal no código ao compilar, convertendo abstrações mais complexas do código em instruções de baixo nível mais simples, entre muitas outras coisas. Tudo isso com o objetivo de entregar um binário final o mais enxuto e eficiente possível. É por isso que Golang compila anos-luz mais rápido do que Rust, já que, como já dito, a prioridade de Go é uma build rápida, sem se preocupar muito com otimizações.
@kommanderkeen3 күн бұрын
Video fantástico! Por que Zig não tem tido a mesma atenção que Rust se parece ser mais rápido e mais parecido com C?
@ViniciusSoaresBatista3 күн бұрын
Zig eh mais nova, comunidade menor, e só ganhou notoriedade recentemente. Rust é o oposto
@gabrielmartins76423 күн бұрын
O dart que me surpreendeu
@soliveirajr3 күн бұрын
É sabido que o JIT consegue fazer milagres que o AOT não consegue. Por exemplo, JIT consegue fazer inlining agressivamente. Para isso ser possível é obrigatório ter informações de run-time (tempo de execução). Obviamente não é viável fazer inline de tudo. Tenho vários códigos de Java que são mais rápido que códigos equivalentes em C++ com -O3, exatamente por causa do JIT. Se vc compila o código Java com GraalVM e testa contra o C++, ele perde ou fica igual. Conclusão => nunca subestime a HotSpot JVM com o seu JIT.
@TheMathues1233 күн бұрын
python 150x mais lento que C. Você programando em C: 150000x mais lento. Eaí, qual tu escolhe ?
@vitorcorrea63753 күн бұрын
Depende onde será usada. Por exemplo, sistemas embarcados. Imagine programar o sistema de um avião em Python, sendo que a resposta tem que ser de forma instantânea.
@Toda_Ciencia3 күн бұрын
nunca que em C é 150000x mais lento, kkkkkkkkk! mas aí está a resposta: depende em sistemas onde performance é essencial, como kernels de sistemas operacionais, jogos, banco de dados, navegadores, etc. C é a escolha em sistemas onde performance não é tão essencial, como web apps, scripts, etc. Python é uma escolha
@TheMathues1233 күн бұрын
@@Toda_CienciaEu não disse a linguagem, eu disse "você" usando a linguagem. Quanto tempo leva pra tu entregar features em C ? sacou.
@ViniciusCosta-bi9bq3 күн бұрын
@@vitorcorrea6375 95% das pessoas trabalham em front, back, mobile ou data science
3 күн бұрын
@@TheMathues123depende do nível de conhecimento sobre a linguagem..
@isaccabral12913 күн бұрын
Parabéns pelo vídeo. Muito bom, difícil um vídeo me prender assim até o final. Qual programa de Benchmark você usou?
@phenpessoa3 күн бұрын
Foi o hyperfine
@DataAnalyst19733 күн бұрын
Portas de 2025 e as pessoas perdendo tempo com isso...
@mariaeduardasantanadolce3523 күн бұрын
E você aqui também...
@paulobitfranca3 күн бұрын
De forma alguma esses testes são perda de tempo, quando feitos com seriedade. Sempre se aprende algo novo, como por exemplo o autor do vídeo citou ter entendido, através desse teste, a questão da otimização que Rust faz e Golang não.
@superfortekiai3 күн бұрын
Adoro vídeos que falam de linguagens com foco em compiladores, eu amo. Obrigado pelo seu contributo.