Na Discourse, temos o maior interesse em adotar o YJIT desde que a equipe de Infraestrutura do Ruby on Rails da Shopify o declarou pronto para produção. Após testemunhar benchmarks locais promissores, começamos a executar nossas aplicações Rails de produção com o YJIT do Ruby 3.2 ativado em clusters selecionados no início de maio de 2023. Em seguida, passamos algum tempo medindo seu desempenho no mundo real. Estamos entusiasmados em compartilhar os resultados positivos que observamos. Com base nessas descobertas, agora ativamos o YJIT em toda a nossa hospedagem, e os auto-hospedeiros podem optar por fazer o mesmo.
Este é um tópico de discussão complementar para a entrada original em https://blog.discourse.org/2023/05/running-ruby-3-2s-yjit-in-production-at-discourse/
Começamos a fazer benchmark do Discourse+YJIT desde novembro de 2022 e começamos a rodar o Meta com YJIT intermitentemente desde janeiro deste ano. O YJIT é um dos motivos pelos quais aceleramos a atualização do Ruby 2.7 para o Ruby 3.2 em poucos meses e estou muito feliz que finalmente chegou. E ainda mais porque as melhorias que chegarão para o Ruby 3.3 parecem ainda melhores!
E sem quaisquer dados medidos e com base no que um ou poucos usuários sentem e veem.
Para mim, este fórum está mais lento há algum tempo. Vejo um círculo giratório por um breve momento quase toda vez que abro um tópico. Claro, isso pode e quase certamente vem dos servidores e das distâncias entre os EUA e a Europa. Mas o Meta está mais lento do que antes.
Comecei a usar o YJIT no meu fórum e quando o servidor está na Alemanha e os usuários são finlandeses, todos dizem que todos os tópicos abrem mais rápido. Isso é realmente engraçado porque não conseguimos ver mudanças nos tempos de carregamento puros abaixo de 200 ms.
Tenho pensado em um tempo de carregamento de página fixo (ou consistente) há algum tempo. Onde os tempos de carregamento para cada página e cada usuário sejam o mais consistentes possível.
As informações sobre usuários finlandeses são interessantes, isso me fez pensar se poderíamos rotear o usuário com base no GEO IP ou latência para um servidor diferente com carga diferente apenas para economizar tempo de resposta.