Hop til indhold
Stavox

Den bedste måde?


MRBennetsen✔

Recommended Posts

Mange glemmer at gøre brug af elseif og else. De hjælper en hel del på OPS.

Jeg har fået at vide hvis du laver dit design inde i funktioner skulle du vidst også spare lidt OPS, men ved jeg ikke om er rigtigt.

Sørg for der ikke er nogle fejl, altså den gør en masse unødvendige ting på en gang.

Link til kommentar
Del på andre sites

Har den største træng til at hjælpe dig men hvis du er amatør, så ville det jo ikke være til nogen nytte da du så (af hvad jeg går udfra) ikke laver E2 hvor pro optimering

behøves ekstremt meget. Hvis du nu beskriver noget af det du skal have optimeret så får du mere hjælp da der er mange ting der hjælper.

Link til kommentar
Del på andre sites

Nu ved jeg ikke hvilken slags E2 du laver men et tip kunne være at hvis din e2 er lang og indeholder mange figurer og test på det der bliver displayet. Ville det hjælpe at bruge timere til at det loader ind lidt efter lidt

 

Et andet tip kunne være at undgå den fx. Tjekker noget uspecificeret først og der efter noget specifikt det kan undgås ved fx. at hvis ejeren skal skrive i chatten så tjekker den om det er ejeren der skriver før den tjekker for tekst. Men det kan også undgås hvis den tjekker efter om en knap bliver trykket at den så tjekker specifikt før den tjekker efter knap

Link til kommentar
Del på andre sites

Burg helst switch cases istedet for elseif siden det minimere OPS en del, brug timere til at gøre ting ikke loader ind, fjern unødvendige linjer kode eller prøv at minimere det ved fx at en spiller trykker på en knap så check om ops er lavere *Dette gør så at det er nærmest umuligt at crashe den ved at spamme*

Link til kommentar
Del på andre sites

Der er ekstremt mange muligheder. 

 

Ændring på den maksimale tiladte OPS

Elseif og else kan bruges

Timere der skal starte din E2 altså delvist loade ting ind, sørg for at de ikke bliver ved med at køre. 

brug timere i stedet for reset()

sørg for som sagt at dele din E2 op så alt ikke bliver loadet på samme tid.

 

MVH. Misser

 

 

Link til kommentar
Del på andre sites

På 02/10/2019 den 10:46 PM , Maloni skrev:

Burg helst switch cases istedet for elseif siden det minimere OPS en del, brug timere til at gøre ting ikke loader ind, fjern unødvendige linjer kode eller prøv at minimere det ved fx at en spiller trykker på en knap så check om ops er lavere *Dette gør så at det er nærmest umuligt at crashe den ved at spamme*

switch cases  og (if, elseif og else) bruger præcist samme antal OBS.

Det eneste forskel er hvordan det ser ud, så du skal bare vælge hvad du synes ser bedst ud.

Link til kommentar
Del på andre sites

1 time siden, Sandpapir skrev:

switch cases  og (if, elseif og else) bruger præcist samme antal OBS.

Det eneste forskel er hvordan det ser ud, så du skal bare vælge hvad du synes ser bedst ud.

Har du testet det? Desuden ingen grund til at give mig dum hvis jeg giver dig et forslag? Desuden ved du ikke engang hvad CPU er inden for e2 tror sku lidt du er den dumme her

Link til kommentar
Del på andre sites

1 time siden, Maloni skrev:

Har du testet det? Desuden ingen grund til at give mig dum hvis jeg giver dig et forslag? Desuden ved du ikke engang hvad CPU er inden for e2 tror sku lidt du er den dumme her

Hvorfor skulle det bruge mindre ops?

Det giver ingen mening, det er legit kun til brug af "designet" i din E2.

Og jeg ved godt hvad CPU er, men jeg vidste ikke lige hvad det skulle bruges til optimering af en E2.

 

Og vil lige teste det her om 2 sekunder, så vil jeg skrive en opdatering på det..

 

Update 🙂

Jeg testede begge måder at lave en chat command på og her er mine resultater.

switch() brugte den gennemsnitligt 6.2 ops, og jeg testede 10 gange med samme command.

if/elseif bruge samme ops og testede også 10 gange, med samme command.

 

Bare for i lige selv kan prøve her er E2'en jeg testede med.

runOnChat(1)


#switch(): Avg: 6.2
#if(chatClk(owner()))
#{
#    A = owner():lastSaid():lower():explode(" ")
#    switch(A[1,string])
#    {
#        case "!walter",
#            print("Walter er cool")
#            break
#        case "!mike",
#            print("Mike er cool")
#            break
#    }
#}

#elseif(): Avg: 6.2
#if(chatClk(owner()))
#{
#    A = owner():lastSaid():lower():explode(" ")
#    if(A[1,string]=="!walter")
#    {
#        print("Walter er cool")
#    }
#    elseif(A[1,string]=="!mike")
#    {
#        print("Mike er cool")
#    }
#}

 

Link til kommentar
Del på andre sites

Ops har 'intet', at gøre med at din e2' crasher / bliver stoppet, og @Sandpapirs average er relativt forkert, da de korrekte informationer skal tjekkes med opcounter() & cputime istedet for ops. Da ops kun er average, og ikke det korrekte brug lige efter execution.

 

Din e2' crasher / bliver stoppet hvis:

Din opcounter over 4.5k(I think) tick qouter din E2'.

Bliver din E2's CPU flagget i at være over 100 fleretagende gange bliver den stoppet af serveren.

 

Mange ting der gør at din ops kører lavere får din cputime til at stige(dafuq?), Det vil sige at der skal optimeres alt efter om du tick quoter eller bliver stoppet af serveren

 

Så de bedste måder at sørge for at din e2' ikke craher er at:

* Huske elseif overalt(hvor det kan bruges)!

* Bruge switch til dine clks, chat commands &      alt andet det kan bruges til

* Aldrig kør funktioner fleretagende gange, hvis det kan undgåes, og gemmes i et lokalt variable

* Husk på at tables bruger langt mere serverkræft / opcounter end normale variabler, så brug dem istedet (det bruger 70% mere cirka)

* Husk på at hele E2'en bliver kørt igennem hver gang at den gør noget, så alle dine hovede og statements bør være elseif

 

^3 The Dead Trixx

Skrevet på mobil så formatting is shit

Link til kommentar
Del på andre sites

13 timer siden, MRBennetsen skrev:

Så søger jeg læremester indenfor switches & cases, da jeg ikke kender den måde 🙂

Har aldrig rigtigt brugt dem selv, men sådan her i guess:

@name 
@inputs 
@outputs S:string
@persist 
if(first())
{
    runOnChat(1)
    
    S = "No"
}


elseif(chatClk(owner()))
{
    A = owner():lastSaid():lower():explode(" ")
    switch(A[1,string])
    {
        case "!set",
            S = owner():lastSaid():sub(5,100)
            break
        case "!print",
            print("S = "+S)
            break
    }
}

Det er ihvertfald sådan jeg har forstået dem 🙂

Ellers prøv at se den her video: https://www.youtube.com/watch?v=UQQAYrejORk

Eller læs på E2 wiki https://github.com/wiremod/wire/wiki/Expression-2

 

Link til kommentar
Del på andre sites

På 05/10/2019 den 12:00 PM , MRBennetsen skrev:

Så søger jeg læremester indenfor switches & cases, da jeg ikke kender den måde 🙂

De kan også bruges til at execute timers

CLK = clkName()
if(CLK != "") {
    switch(CLK) {
        case "timer1",
            if(1 + 1 == 2){
                print("Yes")
            }
        break,
   
        case "timer2",
            if(1 + 1 != 2){
                print("No")
            }          	
        break,
    
        case "timer3",
            if(2 - 1 == 1){
                print("Yes")
            }            
        break,
        
        case "timer4",
            if(2 - 1 != 1){
                print("No")
            }            
        break,

    }   
}

 

Link til kommentar
Del på andre sites

Arkiveret

Dette emne er nu arkiveret og er lukket for yderligere svar

Gæst
Dette emne er nu lukket for yderligere svar
×
×
  • Tilføj...

COOKIE- OG PRIVATLIVSPOLITIK PÅ STAVOX.DK

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privatlivspolitik - Vilkår for brug.