Postei esta publicação em um fórum que usa Discourse:
E também consegui reproduzir este problema no fórum Demo.
Essa postagem contém longos trechos de código copiado e colado - para ser mais preciso, não exatamente código, mas sim a saída da execução de comandos. Esse é um caso de uso bastante comum em fóruns de suporte sobre software e coisas de computador.
Enquanto eu escrevia a postagem, após colar os longos blocos de texto (que nem são tão longos, apenas algumas centenas de linhas), o editor ficou cada vez mais lento apenas ao digitar. Levou tempo para ver as letras que eu digitava aparecerem na tela (e não estou falando da pré-visualização ao vivo, apenas da própria área de texto onde você digita). Basicamente, torna-se inutilizável.
Vejo que este fórum está atrasado nas atualizações. Na semana passada, mesclei uma alteração que atualiza a biblioteca HighlightJS para sua versão mais recente, o que tornará isso muito mais rápido.
Além disso, a instância https://forum.manjaro.org tem a configuração autohighlight all code, o que não é uma boa ideia para um fórum de suporte onde a maioria das postagens com blocos de código serão arquivos de log simples e não código real. Eu sugeriria que a equipe deles desativasse isso o mais rápido possível.
Fora isso, realçar mais de 10 mil linhas de código no thread principal do navegador será perceptivelmente lento em alguns dispositivos, o que é super fácil de ver ao abrir uma diferença do GitHub em um telefone Android. Temos planos de fazer isso acontecer em um worker JS em segundo plano, mas isso tem algumas desvantagens e ainda não chegamos a isso.
Ah, desculpe. Na página inicial, vi um grande botão “experimente grátis”, que sugeria que você só podia experimentar gratuitamente, e na seção de Preços não havia menção a um plano gratuito. Eu deveria ter investigado mais, acho que esses são planos hospedados ou algo assim.
Sim, eu já notei isso e imaginei que provavelmente era uma má configuração da parte deles, mas isso não é relevante para o problema. Eu poderia ter colado um trecho de código JavaScript legítimo igualmente longo. Ou mesmo que o problema seja realmente acionado apenas por ter o código realçado com a sintaxe errada, isso não justifica o editor ficar lento fora do bloco de código.
realçar mais de 10 mil linhas de código na thread principal do navegador será perceptivelmente lento em alguns dispositivos
Sim, mas não há razão para isso acontecer enquanto eu edito o resto da postagem fora do bloco de código que está sendo realçado. Independentemente de você fazer isso na thread principal (obviamente errado - fico feliz em saber que você está trabalhando para corrigir isso) ou em segundo plano, uma vez que o código foi realçado e eu não estou mais editando-o, não deve haver nenhum trabalho relacionado ao realce a ser feito. Qualquer análise, computação, etc. relacionada ao realce só precisa ser refeita se um modificar o conteúdo do bloco de código.