[RoLUG] codice random banner

Roccatello Eduard rolug@lists.linux.it
Thu, 20 Mar 2003 19:19:25 +0100


Questo =E8 il codice che ho prodotto per la rotazione causale dei banner.
=E8 perfettamente funzionante e rispetta le priorit=E0 dei banner (un banne=
r a=20
priorit=E0 pi=F9 alta deve essere visualizzato pi=F9 volte).
[CODE]
		 nBanner =3D BM_rs.recordCount
		 pesoTot =3D 0
		 ' Max range of selection
		 do while not BM_rs.EOF
		 	pesoTot =3D pesoTot + BM_rs("peso")
			BM_rs.Movenext
		 loop
		=20
		 ' Pick a random value in range
		 Randomize
		 rndBanner =3D int(rnd * pesoTot)
		=20
		 ' Pick the relative banner
		 BM_rs.Movefirst
		 counter =3D 0
		 do while counter + BM_rs("peso") < rndBanner
		 	counter =3D counter + BM_rs("peso")
		 	BM_rs.MoveNext
		 loop
[CODE END]
Che ottimizzazioni si possono fare? vorrei avere il minor carico di sistema=
=20
possibile anche se lo script sembra generare un basso carico (non ho ancora=
=20
analizzato le prestazioni contando gli accessi in lettura ma credo che=20
asintoticamente sia O(n)).
si potrebbe eliminare il primo ciclo ma poi dovrei utilizzare due query=20
invece che una sola

si accettano critiche e consigli.
per chi non lo avesse capito quel codice =E8 ASP :-P
=2D-=20
Eduard Roccatello
RoLUG member @ http://rovigo.linux.it
Modding, overclock and hardware reviews @ http://www.pcimprover.it
Look at the headers for my GnuPG key and Jabber ID