Ir para conteúdo

Skript laga? - #1 Loops


danielzinh

Posts Recomendados

Olá a todos, depois do brasileiro inventar o mito do Skript laga, resolvi dar um basta nisso com um teste para ver se... realmente laga mesmo?

vamos então aos testes definitivos e veremos.

 

Esse mito de que o servidor laga bem de um brasileirinho (idiota) que decidiu criar um servidor inteiro em .sk com um processador horrível a um tempo atrás, espalhando a falsa sensação de lag, e as pessoas """maria vai com as outras""" acham o mesmo, apesar de nunca terem comprovado isso.

 

Os testes serão realizados no meu computador pessoal, que tem um poder de processamento significantemente antigo, com as seguintes configurações:

Processador A4-7300 (SIM, BEM BOSTA, POR ISSO ESCOLHI ELE PROS TESTES)

Memória RAM 8GB DDR3

 

Usaremos a versão 1.8.8 do minecraft com Spigot e Skript 2.2 dev-27 com alguns addons do tipo SkQuery 3+ e SkUtilities 0.9.2.

BnMQXBw.png

U7RyKQg.png

 

 

Primeiro, vamos ver o nosso TPS BASE SEM SKRIPTS6MKdopf.png

Temos uma média de 19.47~19.52 de TPS sem Skripts e nem nada do tipo, vamos agora, colocar um código relativamente grande, que faz um LOOP, verificando a cada 1 segundo, os blocos a um raio de 5 bloco de 1 jogador, eu no caso.

every 1 second:
	loop all players:
		loop all blocks in radius 5 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

 

Tivemos um aumento na faixa de TPS, pode ser conscidencia, pois pode ser que nosso processador decidiu dar tudo de si justo agora, como diriam os profissionais estoriadores (devs)

9kX2Not.png

 

Então... vamos reduzir o 1 second para 5 ticks, 4/1 mais rapido e aumentar o raio para 16 blocos.

every 5 ticks:
	loop all players:
		loop all blocks in radius 16 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

 

R774wwK.png

 

Não tivemos percas, muito pelo contrário, nosso TPS ficou melhor por algum motivo desconhecido, mas, os devs diriam que estou roubando, bom, se esse é o caso, saia do tópico, não quero convencer a você ?

 

Claro que esse é um loop de 1 só jogador, então vamos aumentar a dose, e simular como se tivessem 996 (4188880/4202) jogadores no servidor aumentando os valores muito mais, vou deixar um código assim:

every 1 tick:
	loop all players:
		loop all blocks in radius 100 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

oloko que pesado

Esse código diminuiu 1 ponto do meu TPS e elevou meu processador aos 100%

 

preciso trocar de processador RISOS

 

Já vimos que com 996 (4188880/4202) jogadores ON e com um loop de aproximadamente 10 blocos a cada tick, vai travar seu servidor se você usar um processador bosta como o meu.

 

Vamos simular uma situação real, aceitável onde a pessoa tenha que usar um loop a cada 1 segundo que loope todos os blocos ao redor de 10 blocos de um jogador, pode acontecer, então vamos usar esse código simulando uma quantia de mais ou menos 996 (4188880/4202) jogadores, só que com 2 segundos.

every 2 seconds
	loop all players:
		loop all blocks in radius 100 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

O CÓDIGO ACIMA FOI FEITO PARA SIMULAR 996 (4188880/4202) JOGADORES EM UM LOOP A CADA 2 SEGUNDOS COM UM LOOP DE TODOS OS BLOCOS A UM RAIO DE 10 BLOCOS.

 

preciso deixar claro que a média de tps caiu um pouco.

L6uHkf3.png

ficando entre 19.50 a 19.65 com uma margem de erro de mais ou menos 3 a 6% supondo que são unidades de milhar.

 

every 2 seconds:
	loop all players:
		loop all blocks in radius 10 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

Código usado (JÁ PRESCRITO ACIMA)

 

 

Resultado dos testes:

 

t5hTFxS.png

 

tivemos uma baixa de quase 4.5 pontos no nosso TPS com uma simulação de 996 jogadores, mas espera... como chegamos a esse número de 996 jogadores? como posso provar isso? simples.

 

Se pegarmos o numero de blocos APROXIMADO de um loop de 10 raios, temos aproximadamente 2500~5000, usei o numero 4202, e dividi pelo valor de blocos do loop de 100 blocos, 4188880, assim, chegando em tal resultado, tendo uma margem de erro de até 7%.

 

Claro que tem vários fatores que pesam um servidor, RAM, entre outros, mas o principal, que foi testar o Skript com os loops sem frescura, já foi comprovado que aguenta uma média de 200 jogadores diminuindo o TPS em aproxidamanete 1.2 somente.

 

Esse foi um teste básico, existem muitos outros fatores que não inclui aqui, mas eu acho que consegui quebrar o mito de que o skript LAGA MUITO, já que, a ideia na cabeça de quem diz isso, é que o skript lague absurdamente, mas, isso acaba de ser DESMENTIDO.

 

fora que o processador usado é um processador ANTIGO, COM POUCO PODER DE PROCESSAMENTO, vale a pena destacar e considerar.

 

 

Não vai ser o ultimo tópico que falarei sobre Lag em SKRIPT, provavelmente terão mais.

 

Skript LAGA SIM SE USO EM EXCESSO, ISSO FOI COMPROVADO NESSE TÓPICO E NÃO POSSO FALAR O CONTRÁRIO, POR ISSO, SEUS SKRIPTS DEVEM SER OTIMIZADOS DA MELHOR FORMA POSSÍVEL, EVITANDO AO MÁXIMO LOOPS E QUALQUER OUTRO EVENTO QUE SE REPITA COM MUITA FREQUÊNCIA.

 

 

@edit

quero deixar claro que dispenso comentários de pessoas falando que estou errado sem provas, se for fazer sua opinião, peço que comprove-as para não gerar dúvidas entre os leitores do tópico.

Editado por danielzinh
Link para o comentário
Compartilhar em outros sites

Eu.. que ja fui skripter, concordo com você, muitas pessoas ignorantes que falam que skript laga mais que tudo, pena que nunca vi eles querendo testar se isso realmente é verdade, se possivel, teste em um servidor com um processador melhor, gostaria de ver os resultados... tirando isso.. parabens!

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Afonsito disse:

Eu.. que ja fui skripter, concordo com você, muitas pessoas ignorantes que falam que skript laga mais que tudo, pena que nunca vi eles querendo testar se isso realmente é verdade, se possivel, teste em um servidor com um processador melhor, gostaria de ver os resultados... tirando isso.. parabens!

Tenho disponivel um FX-6300, mas optei pelo A4-7300 por ser mais fraco, em um possível #2 talvez eu use os dados de ambos para uma melhor comparação.

Link para o comentário
Compartilhar em outros sites

Em 02/08/2020 em 04:57, danielzinh disse:

Olá a todos, depois do brasileiro inventar o mito do Skript laga, resolvi dar um basta nisso com um teste para ver se... realmente laga mesmo?

vamos então aos testes definitivos e veremos.

 

Esse mito de que o servidor laga bem de um brasileirinho (idiota) que decidiu criar um servidor inteiro em .sk com um processador horrível a um tempo atrás, espalhando a falsa sensação de lag, e as pessoas """maria vai com as outras""" acham o mesmo, apesar de nunca terem comprovado isso.

 

Os testes serão realizados no meu computador pessoal, que tem um poder de processamento significantemente antigo, com as seguintes configurações:

Processador A4-7300 (SIM, BEM BOSTA, POR ISSO ESCOLHI ELE PROS TESTES)

Memória RAM 8GB DDR3

 

Usaremos a versão 1.8.8 do minecraft com Spigot e Skript 2.2 dev-27 com alguns addons do tipo SkQuery 3+ e SkUtilities 0.9.2.

BnMQXBw.png

U7RyKQg.png

 

 

Primeiro, vamos ver o nosso TPS BASE SEM SKRIPTS6MKdopf.png

Temos uma média de 19.47~19.52 de TPS sem Skripts e nem nada do tipo, vamos agora, colocar um código relativamente grande, que faz um LOOP, verificando a cada 1 segundo, os blocos a um raio de 5 bloco de 1 jogador, eu no caso.


every 1 second:
	loop all players:
		loop all blocks in radius 5 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

 

Tivemos um aumento na faixa de TPS, pode ser conscidencia, pois pode ser que nosso processador decidiu dar tudo de si justo agora, como diriam os profissionais estoriadores (devs)

9kX2Not.png

 

Então... vamos reduzir o 1 second para 5 ticks, 4/1 mais rapido e aumentar o raio para 16 blocos.


every 5 ticks:
	loop all players:
		loop all blocks in radius 16 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

 

R774wwK.png

 

Não tivemos percas, muito pelo contrário, nosso TPS ficou melhor por algum motivo desconhecido, mas, os devs diriam que estou roubando, bom, se esse é o caso, saia do tópico, não quero convencer a você ?

 

Claro que esse é um loop de 1 só jogador, então vamos aumentar a dose, e simular como se tivessem 996 (4188880/4202) jogadores no servidor aumentando os valores muito mais, vou deixar um código assim:


every 1 tick:
	loop all players:
		loop all blocks in radius 100 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

oloko que pesado

Esse código diminuiu 1 ponto do meu TPS e elevou meu processador aos 100%

 

preciso trocar de processador RISOS

 

Já vimos que com 996 (4188880/4202) jogadores ON e com um loop de aproximadamente 10 blocos a cada tick, vai travar seu servidor se você usar um processador bosta como o meu.

 

Vamos simular uma situação real, aceitável onde a pessoa tenha que usar um loop a cada 1 segundo que loope todos os blocos ao redor de 10 blocos de um jogador, pode acontecer, então vamos usar esse código simulando uma quantia de mais ou menos 996 (4188880/4202) jogadores, só que com 2 segundos.


every 2 seconds
	loop all players:
		loop all blocks in radius 100 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

O CÓDIGO ACIMA FOI FEITO PARA SIMULAR 996 (4188880/4202) JOGADORES EM UM LOOP A CADA 2 SEGUNDOS COM UM LOOP DE TODOS OS BLOCOS A UM RAIO DE 10 BLOCOS.

 

preciso deixar claro que a média de tps caiu um pouco.

L6uHkf3.png

ficando entre 19.50 a 19.65 com uma margem de erro de mais ou menos 3 a 6% supondo que são unidades de milhar.

 


every 2 seconds:
	loop all players:
		loop all blocks in radius 10 around loop-player's location:
			add 1 to {_x}
		broadcast "Loop: %{_x}% blocos!"

Código usado (JÁ PRESCRITO ACIMA)

 

 

Resultado dos testes:

 

t5hTFxS.png

 

tivemos uma baixa de quase 4.5 pontos no nosso TPS com uma simulação de 996 jogadores, mas espera... como chegamos a esse número de 996 jogadores? como posso provar isso? simples.

 

Se pegarmos o numero de blocos APROXIMADO de um loop de 10 raios, temos aproximadamente 2500~5000, usei o numero 4202, e dividi pelo valor de blocos do loop de 100 blocos, 4188880, assim, chegando em tal resultado, tendo uma margem de erro de até 7%.

 

Claro que tem vários fatores que pesam um servidor, RAM, entre outros, mas o principal, que foi testar o Skript com os loops sem frescura, já foi comprovado que aguenta uma média de 200 jogadores diminuindo o TPS em aproxidamanete 1.2 somente.

 

Esse foi um teste básico, existem muitos outros fatores que não inclui aqui, mas eu acho que consegui quebrar o mito de que o skript LAGA MUITO, já que, a ideia na cabeça de quem diz isso, é que o skript lague absurdamente, mas, isso acaba de ser DESMENTIDO.

 

fora que o processador usado é um processador ANTIGO, COM POUCO PODER DE PROCESSAMENTO, vale a pena destacar e considerar.

 

 

Não vai ser o ultimo tópico que falarei sobre Lag em SKRIPT, provavelmente terão mais.

 

Skript LAGA SIM SE USO EM EXCESSO, ISSO FOI COMPROVADO NESSE TÓPICO E NÃO POSSO FALAR O CONTRÁRIO, POR ISSO, SEUS SKRIPTS DEVEM SER OTIMIZADOS DA MELHOR FORMA POSSÍVEL, EVITANDO AO MÁXIMO LOOPS E QUALQUER OUTRO EVENTO QUE SE REPITA COM MUITA FREQUÊNCIA.

 

 

@edit

quero deixar claro que dispenso comentários de pessoas falando que estou errado sem provas, se for fazer sua opinião, peço que comprove-as para não gerar dúvidas entre os leitores do tópico.

Só provou oque já era provado.

Link para o comentário
Compartilhar em outros sites

Boa! É bom que alguem traga esse tipo de coisa. Talvez o pessoal que se acha o espertão porque viu o Power falando que sk causa lag (E não leu o post do blog dele explicando qual parte do sistema que é o grande problema) talvez pare com essa atitude de primata de achar que tudo o que for feito em Skript é ruim.

Link para o comentário
Compartilhar em outros sites

4 horas atrás, Brunno disse:

Boa! É bom que alguem traga esse tipo de coisa. Talvez o pessoal que se acha o espertão porque viu o Power falando que sk causa lag (E não leu o post do blog dele explicando qual parte do sistema que é o grande problema) talvez pare com essa atitude de primata de achar que tudo o que for feito em Skript é ruim.

falou tudo!

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

Como vc é skripter n entendeu que o tps tava baixo no inicio pq tava a carregar chunks 

Do mesmo jeito, a média de TPS não passou de 0.30, algo talvez irrelevante, não significa que estava a carregar os chunks, não há nada haver com isso pois o meu Jogador já estava logado no mapa faziam algumas horas, antes de realizar os testes, eu estava testando que código usar no teste, minha teoria do motivo do TPS ter elevado é por conta de eu ter fechado o Google alguns minutos depois.

 

4 horas atrás, GTBelo disse:

Vale ressaltar que: quem usa códigos de Loop por segundo tem probleminha né.

Foi um bom teste, pois poucos códigos seriam tão pesados como este que você fez.

 

Obrigado hihihi

 

7 horas atrás, Brunno disse:

Boa! É bom que alguem traga esse tipo de coisa. Talvez o pessoal que se acha o espertão porque viu o Power falando que sk causa lag (E não leu o post do blog dele explicando qual parte do sistema que é o grande problema) talvez pare com essa atitude de primata de achar que tudo o que for feito em Skript é ruim.

Concordo com você!

 

9 horas atrás, zBrunooow disse:

realmente, se as pessoas ouvissem mais umas as outras, talvez seria diferente...

Nossa me da um autógrafo, sou teu fã

Link para o comentário
Compartilhar em outros sites

2 horas atrás, danielzinh disse:

Do mesmo jeito, a média de TPS não passou de 0.30, algo talvez irrelevante, não significa que estava a carregar os chunks, não há nada haver com isso pois o meu Jogador já estava logado no mapa faziam algumas horas, antes de realizar os testes, eu estava testando que código usar no teste, minha teoria do motivo do TPS ter elevado é por conta de eu ter fechado o Google alguns minutos depois.

 

Obrigado hihihi

 

Concordo com você!

 

Nossa me da um autógrafo, sou teu fã

espera você esteve a demonstrar num servidor no seu computador? isso é um bocado burro...

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

espera você esteve a demonstrar num servidor no seu computador? isso é um bocado burro...

Não usei em uma máquina com i9-30000K pois assim, não veria resultados, optei por fazer o teste em meu computador pessoal que tem um poder de processamento relativamente fraco para provar que até em um computador PODRE o skript pode rodar sem muitas baixas e com um código pesado.

Link para o comentário
Compartilhar em outros sites

2 horas atrás, danielzinh disse:

Não usei em uma máquina com i9-30000K pois assim, não veria resultados, optei por fazer o teste em meu computador pessoal que tem um poder de processamento relativamente fraco para provar que até em um computador PODRE o skript pode rodar sem muitas baixas e com um código pesado.

Mano com 1 skript n laga mas com 2 já é de foder

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

Mano com 1 skript n laga mas com 2 já é de foder

ok amigo! vai dormir que você ta precisando, quando resolver parar de falar coisas sem sentido e PROVADAS QUE ESTÃO ERRADAS no PRÓPIO TÓPICO você vai parar de passar vergonha aqui.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, danielzinh disse:

ok amigo! vai dormir que você ta precisando, quando resolver parar de falar coisas sem sentido e PROVADAS QUE ESTÃO ERRADAS no PRÓPIO TÓPICO você vai parar de passar vergonha aqui.

Passar vergonha? Que eu saiba vc que está com a tag skripter ?

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

Passar vergonha? Que eu saiba vc que está com a tag skripter ?

Tenho com orgulho, não me desfaço dela nem por um cacete, tenho moral pra dizer que você está errado em TANTOS NIVEIS DIFERENTES já que o que você ta dizendo está errado, fazendo papel de hipócrita, e já contatei o Coordenador responsável pela minha área sobre essas AFRONTAS que está a falar no meu tópico.

Editado por danielzinh
Link para o comentário
Compartilhar em outros sites

1 hora atrás, danielzinh disse:

Tenho com orgulho, não me desfaço dela nem por um cacete, tenho moral pra dizer que você está errado em TANTOS NIVEIS DIFERENTES já que o que você ta dizendo está errado, fazendo papel de hipócrita, e já contatei o Coordenador responsável pela minha área sobre essas AFRONTAS que está a falar no meu tópico.

Apenas falei as verdades, skript não é para projetos grandes apenas para comandos simples e você está a induzir vária gente em erro ao falar que é bom ?
Você irá defender sua "linguagem" com toda sua vida mas no fundo sabe que está perdendo tempo numa "linguagem" que está presa numa api que é muito centralizada e que está cheia de fronteiras.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

Apenas falei as verdades, skript não é para projetos grandes apenas para comandos simples e você está a induzir vária gente em erro ao falar que é bom ?
Você irá defender sua "linguagem" com toda sua vida mas no fundo sabe que está perdendo tempo numa "linguagem" que está presa numa api que é muito centralizada e que está cheia de fronteiras.

Prove que é não é para projetos grandes ? pois eu provei que é, acho que seu argumento é inválido ou você tem algum tipo de transtorno que não permite ler o tópico.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, danielzinh disse:

Prove que é não é para projetos grandes ? pois eu provei que é, acho que seu argumento é inválido ou você tem algum tipo de transtorno que não permite ler o tópico.

Faz um objeto ? (é simples mas em skript é uma merda de fazer, se der!)

Editado por Pescada
Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

Faz um objeto ? (é simples mas em skript é uma merda de fazer, se der!)

Não faço ideia do que seja isso, mas mesmo "sendo" uma merda de se fazer, ainda é possível, então você não provou NADA que não serve em projetos grandes.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, danielzinh disse:

Não faço ideia do que seja isso, mas mesmo "sendo" uma merda de se fazer, ainda é possível, então você não provou NADA que não serve em projetos grandes.

Acabei de provar KKKKKKKKKKKK

Link para o comentário
Compartilhar em outros sites

1 hora atrás, danielzinh disse:

prove. crie seu tópico provando o contrário do meu se for capaz, um tópico DE 2016 não vai mudar meu conceito.

Faz algo fora do minecraft ou faz um skript que interliga servidores de uma rede

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Pescada disse:

Faz algo fora do minecraft ou faz um skript que interliga servidores de uma rede

MySQL interliga os servidores de uma rede e adivinha? Skript é capaz de usar MySQL, e eu consigo sim usar algo fora do Minecraft, pois com o mesmo MySQL eu consegui integrar Skript no PHP e criar um integrado com meu servidor. ;D

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...