INT_IP2

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

barratator

Betreff: INT_IP2

BeitragMo, Mai 19, 2008 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
das ist mein erster Eintrag hier im Codearchiv...Also bitte nicht zu streng sein Smile

Es kennen sicher viele die Funktion INT_IP um aus einer IP einen Integer zu machen (um über UDP was zu verschicken z.B.).
Dazu habe ich auch mal eine eigene Version geschrieben, die etwas schneller als das Original ist.

Code: [AUSKLAPPEN]

Function INT_IP2(ip$)
  p1=Instr(ip$,"."):p2=Instr(ip$,".",p1+1):p3=Instr(ip$,".",p2+1)
  Return (Int(Mid(ip$,1,p1))*16777216)+(Int(Mid(ip$,p1+1,p2-p1))*65536)+(Int(Mid(ip$,p2+1,p3-p2))*256)+Int(Mid(ip$,p3+1,-1))
End Function


Bei mir auf dem Rechner (AMD Athlon64 4400+) hat diese Methode bei 65536 durchläufen immer zwischen 2300 und 2500 Millisekunden gebraucht, wobei das Original zwischen 2800 und 3000 gebraucht hat.

Also arbeitet meine Funktion ca. 120% so schnell wie das aus der OnlineHilfe.





gruß
Bastian

Eingeproggt

BeitragMo, Mai 19, 2008 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Funktion arbeitet 20% schneller. (Wenn deine Angaben stimmen.. Ich vertrau dir mal, habs jetzt nicht getestet)

Ansonsten: Darauf wirds ehrlich gesagt net ankommen. Wie oft verwendet man die Funktion schon in nem Spiel?
Wahrscheinlich nie so oft, dass der Unterschied merkbar wird...

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Silver_Knee

BeitragMo, Mai 19, 2008 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
hihi ich kenne da so TimBos.... die Schreiben sowas wie SendUDPMsg ......, IntIP("...") xD

Noobody

BeitragMo, Mai 19, 2008 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum schreibt man sich immer solche komplizierten IntIP - Funktionen?
Blitz kann das auch von Haus aus Wink

Code: [AUSKLAPPEN]
 Function IntIP( DottedIP$ )
     CountHostIPs( DottedIP$ )
     Return HostIP( 1 )
End Function
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

barratator

BeitragMo, Mai 19, 2008 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm...diese braucht aber VIEL länger als die selbstgeproggten...



gruß
Bastian

Silver_Knee

BeitragMo, Mai 19, 2008 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
dafür kriegst du aber thoretisch alle IP eines Hostes auch wenn die IP 2 Cluster hat etc

the FR3AK

BeitragMo, Mai 19, 2008 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Normalerweisse benutzt man die Funktion eh nur am Anfang und nicht in der Hauptschleife...und ich denke wenn es ein Paar ms länger dauert bekommt auch keinen Herzinfarkt oder?Wink

StepTiger

BeitragDi, Mai 20, 2008 0:14
Antworten mit Zitat
Benutzer-Profile anzeigen
vor allem weil es um 65536 Durchläufe geht, um das jetzt mal für einen Durchlauf zu setzen:
0,035-0,038ms, also 0,000035-0,000038s in deinem Beispiel
0,042-0,045ms, also 0,000042-0,000045s im Original.

Und mal ganz realistisch betrachtet, braucht man diese Funktion vielleicht alle 1000 Durchläufe, und ob es da nun einen Unterschied macht, ob die Durchläufe jetzt 20s oder 20,000042s brauchen, wage ich zu bezweifeln-
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

TimBo

BeitragDi, Mai 20, 2008 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
*Hust ja ich hab das einfach immer mit IntIP gemacht und das immer beim Senden

aber jetz mach ich das auch nicht mehr
^^

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group