|
Prestazioni (sessuali :o*)
Un caro ragazzo di
nome Hammer, ha effettuato dei test sui vari metodi di
scriptare.
Cosa vuol dire?
Vuol dire che...
Mo ve lo faccio vedere.
Immaginiamo di fare un piccolo addon per il nostro
script.
L'addon e' quello che segue:
LinesTest1 {
say $chr(160)
set %i 0
set %second.loop.start $ticks
:label1
inc %i
if (%i != 100000) { set %i %i
| set %i %i | goto label1 }
set %second.loop.end $ticks
say $chr(3) $+ 10Results hare: $calc(%second.loop.end
-
%second.loop.start) ticks to complete
}
LinesTest2 {
say $chr(160)
set %i 0
set %second.loop.start $ticks
:label2
inc %i
if (%i != 100000) {
set %i %i
set %i %i
goto label2
}
set %second.loop.end $ticks
say $chr(3) $+ 10Results hare: $calc(%second.loop.end
-
%second.loop.start) ticks to complete
}
Ho
marcato in giallo le differenze
tra i due script.
I due
listati eseguono le stesse procedure, ma sono scritti
con una piccola differenza.
Nel primo listato vengono settate delle ipotetiche
variabili %i in modo orizzontale, nel secondo
listato vengono settate in modo verticale.
Come ben
saprete, potete effettuare diverse operazioni in modo
"lineare" utilizzando il segno | (pipe) ed e' quello
che e' stato fatto.
Cosa comporta questa differenza di struttura?
Guardatevi sta tabella, cosė capirete quanto e'
importante la struttura nello scripting.
|
Esecuzione n°
|
LinesTest1
|
LinesTest2
|
Differenza in %
|
|
01
|
60.593
|
62.363
|
2.84
|
|
02
|
60.509
|
62.570
|
3.29
|
|
03
|
60.675
|
62.830
|
3.43
|
|
04
|
60.819
|
62.858
|
3.24
|
|
05
|
60.906
|
62.472
|
2.51
|
|
06
|
60.833
|
62.295
|
2.35
|
|
07
|
60.674
|
62.652
|
3.16
|
|
08
|
60.935
|
62.625
|
2.70
|
|
09
|
60.785
|
62.377
|
2.55
|
|
10
|
61.096
|
62.872
|
2.82
|
| |
|
|
|
|
Media:
|
60.782
|
62.591
|
2.89
|
|
Che significa tutto questo?
Significa che mettere una serie di comandi in
linea e metterli in verticale non e' la stessa
cosa.
Metterli in linea richiede meno ticks, ossia
meno operazione.
Questo vuol dire che il nostro script sara' piu'
veloce.
Facciamo un altro esperimento:
SlashTest1 {
say $chr(160)
set %i 0
set %second.loop.start $ticks
:label1
inc %i
if (%i != 100000) /goto
label1
set %second.loop.end $ticks
say Results hare: $calc(%second.loop.end -
%second.loop.start) ticks to complete
}
SlashTest2 {
say $chr(160)
set %i 0
set %second.loop.start $ticks
:label2
inc %i
if (%i != 100000) goto
label2
set %second.loop.end $ticks
say Results hare: $calc(%second.loop.end -
%second.loop.start) ticks to complete
}
In
questo secondo test, abbiamo utilizzato una
delle proprieta' del mIRC, overo la possibilita'
di omettere il carattere / (slash) per
fare eseguire un comando.
Vediamo subito la tabella con i risultati... |
|
Esecuzione n°
|
SlashTest1
|
SlashTest2
|
Differenza in %
|
|
01
|
33.537
|
34.067
|
1.55
|
|
02
|
33.290
|
33.778
|
1.44
|
|
03
|
33.440
|
33.902
|
1.36
|
|
04
|
33.290
|
33.744
|
1.35
|
|
05
|
33.482
|
33.963
|
1.42
|
|
06
|
33.221
|
33.551
|
0.98
|
|
07
|
33.276
|
33.812
|
1.59
|
|
08
|
33.208
|
33.685
|
1.42
|
|
09
|
33.442
|
34.299
|
2.50
|
|
10
|
33.249
|
33.825
|
1.70
|
| |
|
|
|
|
Media:
|
33.343
|
33.863
|
1.53
|
Come potete ben vedere, utilizzare o no il
carattere / implica differenze abbastanza
sostanziali nell'esecuzione di un comando.
Le mie conclusioni
Posso solo darvi un paio di consigli.
Per quanto riguarda il secondo test,
abituatevi a scriptare senza abusare del
carattere slash.
Usatelo solo se necessario e, se non siete
sicuri se metterlo o no, provate lo script
senza e, se non funge, schiaffategli sto cazzo
di /.
Per quanto riguarda il primo test, non
pretendete di scriptare in modo lineare fin
dal principio.
Cerco di spiegarmi.
Utilizzare i pipe e', senza dubbio, il metodo
migliore per ottenere uno script veloce, pero'
richiede una concentrazione e una chiarezza di
idee decisamente maggiore nei confronti della
procedura verticale.
Immaginate di dover gestire una scansione di
socks automatica...
Scriptare in modo lineare richiede una
conoscenza decisamente alta per non
incasinarvi.
Visto che, probabilmente, ancora non siete
esperti, scriptate verticalmente e, dopo che
avete testato lo script, levate gli "a capo" e
sostituiteli con i pipes.
MA PRIMA TESTATE LO SCRIPT!!
Lamerone the Mescalinized
|
|