Executando verificação de segurança...
1

Trabalho num projeto de plataforma de negociação de ativos. O performance profile da imagem é de um dos fluxos de atualização de resultados da posição a partir da cotação mais recente do ativo...

JSSample não é uma lib. É uma amostragem que o runtime do V8 coleta numa determinada frequência para montar a callstack que a gente vê no performance profile do Devtools. Você consegue ativar a visualização dela na aba experimental das configurações do Devtools, V8 Runtime Show Timeline. A flag experimental apenas habilita a visualização da mesma, juntamente de outros eventos da Thread principal com o motor V8, que por padrão não são exibidos, mas sempre existiram e estão ali, escondidinhos.

Essa frequência de amostragem é geralmente muito rápida (algo nos entornos de 0.1ms), mas para alguns usuários da minha plataforma, isso está estranhamente mais lento (chegando às vezes aos 16ms).

Veja bem, uma task é caracterizada longa (longtask) se tiver mais de 50ms de duração, o que daria pra tirar cerca de 500 JSSamples numa frequência normal, mas no estado em que se encontra, 4 JSSamples já caracteriza uma Longtask (52ms)...

Toda a execução da Main thread está lenta e custosa, incluindo o próprio perfilamento (JSSample), que deveria ser atomicamente a coisa mais rápida a ser executada.

Como resultado disso, o Gráfico de operação do cliente fica extremamente inoperável, lento, porque a Main está ocupada e, consequentemente, bloqueando a renderização e interação com a UI.

Isso ocorre apenas com alguns clientes, o que significa que nao é totalmente problema do algoritmo do gráfico... O hardware tende a ser padrão em nossa base de clientes, pois servimos uma aplicação exclusivamente MacOS, cuja configuração de hardware é idêntica para entre os mesmos modelos de equipamento.

Carregando publicação patrocinada...
1

Puxa vida, ainda não conhecia essa nova feature do v8/Devtools
Tentei pesquisar e não achei nada sobre JSSamples, só libs.
Deve ser algo muito novo!

Quanto ao seu problema, vc teria que destrinchar melhor seu sistema.
Separar para ir pegando canto por canto e ver onde esta a lentidão.

Como você disse o JSSamples é experimental. Pode dar problemas

1

É que experimental é apenas a visualização na timeline. Mas, o mecanismo de coleta de amostragem sempre foi assim mesmo...

Na real, acredito que nunca vai sair dessa flag experimental essa opção, pois ela é "avançada" e poucos são os cenários em que ela se faz necessária e, portanto, não faz sentido ser exibida sempre, por padrão...