Ir para conteúdo

Skript laga? #2 - Parem de usar functions! isso LAGA!


danielzinh

Posts Recomendados

Olá, alguns me conhecem nesse fórum como o Skripter que do nada sumiu do fórum, mas os meus motivos estão além disso.

 

Já contribui muito com essa comunidade, postando vários skripts, inclusive eu entrei pro recorde anual de mais curtidas em apenas uma semana, e permaneço lá até este atual momento.

 

HOJE EU VOU EXPLICAR A VOCÊ O MOTIVO DE VOCÊ NUNCA USAR FUNCTIONS!

Esse é um mal que muitas pessoas usam sem saber do poder que tem pra DESTRUIR SEU SERVIDOR, e não é exagero não!

 

Hoje vou apresentar todos os fatos que provam que functions são um mal que nem deveria existir no Skript!

 

Sem desculpinhas! Esse vai ser nas versões mais recentes! 1.16.5 e com Skript 2.5.3 e SkQuery 4.1.4

8y7ZZfC.png

 

Nesse teste não será contabilizado o TPS, e sim a demora para recarga dos skripts.

 

VAMOS AOS TESTES

sem enrolação! VOU PROVAR DE UMA VEZ POR TODAS QUE COM APENAS UMA FUNCTION SIMPLES EU POSSO LAGAR SEU SERVIDOR!!!!!!!!!!

 

IREI USAR UM CRONOMETRO PARA SABERMOS QUANTO TEMPO DEMOROU PARA DAR RELOAD, O CÓDIGO DO CRONOMETRO É ESSE:

on command "sk":
	if arguments contains "reload":
		set {x} to now
on load:
	broadcast "%difference between {x} and now%"

Sempre que der reload, ele dirá quanto tempo demorou para esse reload no código ser feito.

 

ANÁLISE:

código sem functions:

command /ab:
	trigger:
		set {_player} to {_p}
		set {_text} to {_t}
		set {_number} to round({_n})
		
		set {var1::%{_player}%} to {_text}
			

 

código com functions:

function teste1(p: player, t: text, n: number) :: number:
	set {_player} to {_p}
	set {_text} to {_t}
	set {_number} to round({_n})
	
	set {var1::%{_player}%} to {_text}
	
	return {_number}
	
command /a:
	trigger:
		set {_x1} to teste1(player, "1", 412213.12)

TODOS OS CÓDIGOS ESTÃO INCLUIDO O DO CRONOMETRO!

 

Tempo que o com functions demora:

qNO6oV5.png

 

Tempo que o sem functions demora:

xVJ6upt.png

 

 

A DIFERENÇA FOI POUCA, PORÉM, DE 0.01 SEGUNDOS PARA 0.02 SEGUNDOS É DOBRO DE TEMPO A MAIS! AGORA IMAGINEM SE TIVESSEM VÁRIAS E VÁRIAS FUNCTIONS EM SEU SERVIDOR, ISSO LAGARIA COM CERTEZA!

 

NÃO VOU CONSEGUIR FAZER UM TESTE MAIS APROFUNDADO POIS ESTOU SEM TEMPO, MAS ACHO QUE JÁ DEU PRA PROVAR QUE FUNCTIONS NÃO FAZEM BEM.

 

Mas lembrem-se: Não são as functions que travam, são os chamados dela. Você criar uma function não lagará, só lagará quando você chamar ela em algum evento, como esse:

UvnKCzn.png

 

e essa é uma function muito simples, se fosse uma maior, lagaria muito mais.

 

 

parem de usar functions, e desculpem pelo tópico desorganizado.

 

 

Link para o comentário
Compartilhar em outros sites

ai meu deus ... este tópico não faz sentido nenhum! ainda estás a tempo de eliminar esta merda

 

Como é que tu dizes que o uso de funções causa mais lag ao servidor se só estas a testar quando carregas?

O skript só demora mais tempo a carrega porque a quantidade de texto é maior de um skript para o outro... não por causa do uso de funções.

Link para o comentário
Compartilhar em outros sites

Concordo com o que o rubens disse acima, não tem como tu julgar que as functions são ruins por causa do tempo de recarga, isso é natural  pois tem mais texto e não vai lagar o servidor (a não ser que o dono fique dando reload, o que não é recomendado). Devia ter levado em conta tempo de execução de ambos códigos ai sim teria uma comparação válida.

Link para o comentário
Compartilhar em outros sites

Em 17/03/2021 em 06:33, rubenlousada11 disse:

ai meu deus ... este tópico não faz sentido nenhum! ainda estás a tempo de eliminar esta merda

 

Como é que tu dizes que o uso de funções causa mais lag ao servidor se só estas a testar quando carregas?

O skript só demora mais tempo a carrega porque a quantidade de texto é maior de um skript para o outro... não por causa do uso de funções.

A função usada nos testes foi uma simples função curta.

 

Eu já usei uma função de três argumentos em um código meu, e o código demorava mais de 80 segundos para carregar só por conta das funções, e era uma função de só 13 linhas, sendo chamada só umas 10 vezes dentro do código.

 

Agora imagine você, vários skripts no servidor, várias funções, 10 minutos para carregar um Skript, isso iria parar o seu servidor na hora.

 

Spigot tem uma opção (configurável) que manda avisos pro console caso o servidor pare de responder, e o máximo é 300 segundos (5 minutos) ou seja, se VOCÊ colocar uma functions muito grande, o servidor não irá nem conseguir interpretar um só código!

 

Seu comentário foi ignorante e você não entendeu o sentido do teste.

 

@edit

 

As funções lagam SIM! não é por causa da quantidade de códigos sendo replicados, tente fazer a mesma coisa só que sem as funções, copie os códigos e cole, e veja os resultados! é várias vezes mais rápido que usar functions!

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

Em 16/03/2021 em 21:13, ꧁RXZ꧂(ƸMaiconJHansenƷ) disse:

Blz, porem se usar funções laga, então fazer uma expression e usar-la também iria gerar lag?

Tudo laga no Skript, porém as funções funcionam de forma que o Skript passa em todos os códigos e verifica código por código se há uma função, depois passa denovo em todos os códigos e aplica essa função a elas, por isso o lag é maior.

 

As expressões lagam também, mas muito menos que functions.

Link para o comentário
Compartilhar em outros sites

 

3 horas atrás, danielzinh disse:

A função usada nos testes foi uma simples função curta.

 

Eu já usei uma função de três argumentos em um código meu, e o código demorava mais de 80 segundos para carregar só por conta das funções, e era uma função de só 13 linhas, sendo chamada só umas 10 vezes dentro do código.

 

Agora imagine você, vários skripts no servidor, várias funções, 10 minutos para carregar um Skript, isso iria parar o seu servidor na hora.

 

Spigot tem uma opção (configurável) que manda avisos pro console caso o servidor pare de responder, e o máximo é 300 segundos (5 minutos) ou seja, se VOCÊ colocar uma functions muito grande, o servidor não irá nem conseguir interpretar um só código!

 

Seu comentário foi ignorante e você não entendeu o sentido do teste.

 

@edit

 

As funções lagam SIM! não é por causa da quantidade de códigos sendo replicados, tente fazer a mesma coisa só que sem as funções, copie os códigos e cole, e veja os resultados! é várias vezes mais rápido que usar functions!

Eu não sei como tu, pessoa que fez este tópico totalmente errado e sem nexo, consegue chamar alguém de ignorante...

Você sabe que LAG e LOADING TIME são duas coisas totalmente diferentes, certo?

LOADING TIME não implica a geração de LAG já que o skript só é para ser iniciado uma vez, que é no começo do servidor.

Para além disso, duvido que algum conjunto de  SKRIPTS demore 10 minutos a ligar. Só para você ter noção, em 1 segundo você dava LOAD 50 vezes a esse SKRIPT, o que dá 3000 SKRIPTS IGUAL A ESSE POR MINUTO, E 30000 POR MINUTO!!!

Você não sabe do que está a falar e pensa que toda a gente existe neste fórum têm QI negativo igual ao seu.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, rubenlousada11 disse:

 

Eu não sei como tu, pessoa que fez este tópico totalmente errado e sem nexo, consegue chamar alguém de ignorante...

Você sabe que LAG e LOADING TIME são duas coisas totalmente diferentes, certo?

LOADING TIME não implica a geração de LAG já que o skript só é para ser iniciado uma vez, que é no começo do servidor.

Para além disso, duvido que algum conjunto de  SKRIPTS demore 10 minutos a ligar. Só para você ter noção, em 1 segundo você dava LOAD 50 vezes a esse SKRIPT, o que dá 3000 SKRIPTS IGUAL A ESSE POR MINUTO, E 30000 POR MINUTO!!!

Você não sabe do que está a falar e pensa que toda a gente existe neste fórum têm QI negativo igual ao seu.

Não vou vir a discutir com você, pegue seus argumentos e não volte mais aqui, já expliquei tudo que deveria, não te devo satisfação.

Link para o comentário
Compartilhar em outros sites

5 horas atrás, danielzinh disse:

Até agora não explicou o motivo claramente.

Eu já explique claramente a razão deste TOPICO ser desinformação, se você não sabe ler, problema seu.

Se o teu cérebro pequeno não consegue perceber o que estou a escrever, devias ir para a escola e voltar a estudar.

Link para o comentário
Compartilhar em outros sites

8 horas atrás, rubenlousada11 disse:

Eu já explique claramente a razão deste TOPICO ser desinformação, se você não sabe ler, problema seu.

Se o teu cérebro pequeno não consegue perceber o que estou a escrever, devias ir para a escola e voltar a estudar.

Você só sabe ofender, amigo kkkkkkk

 

você perdeu sua razão completamente desde o primeiro post, onde você só soube falar que o meu tópico estava "uma merda".

 

e o que você disse não faz nenhum sentido com o que eu disse no tópico, parece que quem não sabe ler é você

 

@edit

Para você estar defendendo tanto assim coisa lagada, eu imagino que seus códigos tenham 500 funções, 200 everys de 1 tick e 1000 comandos de debug (risos)

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

Em 17/03/2021 em 09:33, rubenlousada11 disse:

ai meu deus ... este tópico não faz sentido nenhum! ainda estás a tempo de eliminar esta merda

 

Como é que tu dizes que o uso de funções causa mais lag ao servidor se só estas a testar quando carregas?

O skript só demora mais tempo a carrega porque a quantidade de texto é maior de um skript para o outro... não por causa do uso de funções.

 

Em 17/03/2021 em 13:18, Dargoh disse:

Concordo com o que o rubens disse acima, não tem como tu julgar que as functions são ruins por causa do tempo de recarga, isso é natural  pois tem mais texto e não vai lagar o servidor (a não ser que o dono fique dando reload, o que não é recomendado). Devia ter levado em conta tempo de execução de ambos códigos ai sim teria uma comparação válida.

Estes dois comentários disseram tudo. É impossível verificar se causa lag através do tempo de recarga do skript.

Para além disso, entre 0.01s e 0.02s não é um bom teste, nem uma boa prova que realmente causa lag, até porque o 0.01s pode ser 0.01859s que é vem perto de 0.02 ...

Link para o comentário
Compartilhar em outros sites

ambos manipulados de que o dilema de "LAG" === "TPS"

 

Spigot tem um limite de 10 minutos para crashs do servidor, ou seja, se o servidor para de responder durante 10 minutos ele é fechado automaticamente.

 

Se você utiliza muitas functions, o suficiente pro tempo de recarga passar desse tempo, o servidor nem iniciar consegue, já que é fechado.

 

e vou relembrar:

se você tem uma function em algum código, o skript pega essa função, da um loop em todos os skripts DENOVO para ver se há mais alguma, depois da MAIS UM LOOP e aplica-a nos lugares onde ela está sendo convocada, gerando uma lentidão MUITO MAIOR do que simplesmente usar o código várias vezes.

Link para o comentário
Compartilhar em outros sites

3 horas atrás, danielzinh disse:

ambos manipulados de que o dilema de "LAG" === "TPS"

 

Spigot tem um limite de 10 minutos para crashs do servidor, ou seja, se o servidor para de responder durante 10 minutos ele é fechado automaticamente.

 

Se você utiliza muitas functions, o suficiente pro tempo de recarga passar desse tempo, o servidor nem iniciar consegue, já que é fechado.

 

e vou relembrar:

se você tem uma function em algum código, o skript pega essa função, da um loop em todos os skripts DENOVO para ver se há mais alguma, depois da MAIS UM LOOP e aplica-a nos lugares onde ela está sendo convocada, gerando uma lentidão MUITO MAIOR do que simplesmente usar o código várias vezes.

Certo, mas onde achou essa informação de como as functions funcionam em skripts? Eu estive procurando e não encontrei nada ...

Duvido que as functions realmente funcionem assim em SKRIPT já que tornaria uma boa prática (dividir o código em funções reutilizáveis) inviável de usar devido ao aumento GIGANTE do tempo de recarga.

 

Poderia indicar onde arranjou a informação sobre como funcionam as functions em skript?

Link para o comentário
Compartilhar em outros sites

7 horas atrás, danielzinh disse:

ambos manipulados de que o dilema de "LAG" === "TPS"

 

Spigot tem um limite de 10 minutos para crashs do servidor, ou seja, se o servidor para de responder durante 10 minutos ele é fechado automaticamente.

 

Se você utiliza muitas functions, o suficiente pro tempo de recarga passar desse tempo, o servidor nem iniciar consegue, já que é fechado.

 

e vou relembrar:

se você tem uma function em algum código, o skript pega essa função, da um loop em todos os skripts DENOVO para ver se há mais alguma, depois da MAIS UM LOOP e aplica-a nos lugares onde ela está sendo convocada, gerando uma lentidão MUITO MAIOR do que simplesmente usar o código várias vezes.

Faz sentido Dr. Senku, se for realmente assim que o Skript chama as functions é melhor chamar o código várias e várias vezes. Mas por outro lado, TPS ta realmente ligado ao LAG em servidores, uma vez que o servidor espera todos os plugins executarem suas tarefas antes de passar para o próximo tick, congelando todas as funções naturais do Bukkit e NMS.

Link para o comentário
Compartilhar em outros sites

3 horas atrás, danielzinh disse:

eu deixei de responder eles quando vi que são motivos apenas pela ignorância

Concordo com os amigos acima. Tu explicou, explicou e não explicou nada com nada,  há vários fatores alí que são totalmente errados, você está espalhando desinformação...

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

Em 01/04/2021 em 20:08, yStore disse:

Concordo com os amigos acima. Tu explicou, explicou e não explicou nada com nada,  há vários fatores alí que são totalmente errados, você está espalhando desinformação...

Ele não têm razão e chama os outros de ignorante kkkk

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...