TYPE und der index den Handle() zurückgibt
Übersicht

![]() |
tftBetreff: TYPE und der index den Handle() zurückgibt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo....
mein neues/altes Project DNA(ELITE war mal). Hatte ich ganz mit DIM's angefangen. Einige Zeit später habe ich dann auf Types umgestellt. Leuft alles ganz super. Nu ist mir beim Testen aufgefallen, das die Instance, also der index der bei jedem NEW vergeben wird einmalig ist. Da stellt sich mir die frage ob der index dann bei 16 Bit oder 32 Bit aufhört, und was dann passiert. Gibts eine Garbagecolection oder einen MAV. Gibt es fieleicht die möglichkeite einen Index widerzuferwenden? |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Handle bleibt nur dann einmalig, wenn man beim erstellen eines Typeslisteneintrages ql:Handle eingegeben hat. Wird es weggelassen, so wird die ID-Handle einer Typeliste immer durchnummeriert.
Ein Überlauf kämme erst bei 4.294.967.296 (eventuell auch schon bei der Hälfte wegen Vorzeichenbit). Das zu testen, habe ich grad keine Lust. ![]() Wenn du es aber schaffst eine Routine zu schreiben, die 10.000 neue Typeeinträge pro Sekunde macht, so musst du denoch fast 5 (ev. 2 1/2) Tage warten, bis ein Überlauf kommen könnte. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ..
das nenne ich doch mal eine klare und kurze Antwort. Danke. Ich hatte auch kein lust das zu Testen. Also 32 Bit , eventuell vorzeichenbehaftet. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warscheinlich redet ihr auf einer höheren Ebene als ich es verstehe,
aber man kann mit Types (genaue Zahl weiß ich nicht) sehr schnell einen Buffer Overflow erzeugen. Ob das dann mit den Types oder dem Inhalt zusammenhängt weiß ich nicht... |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, die Zahl schein doch etwas kleiner zu sein als 2^32. Hab's nämlich eben mal ausprobiert und kam auf:
85.530.000 Einträge (bei einem Field); 73.310.000 Einträge (bei zwei Fields); ohne zwischendurch Einträge zu löschen. TestCode: [AUSKLAPPEN] Graphics 400,300,0,2
SetBuffer BackBuffer() Type test Field x% ; Field y% End Type While Not KeyHit(1) a=a+1 If a=>10000 b=b+1:Print b+"0000":a=0 t.test=New test t\x=Rand(100) ; t\y=Rand(100) Wend End Im Taskmanager kann man beobachten, wie im Sekundentakt etwa 30 MB hinzu kommen. @tft, sorry wegen vorheriger Falschaussage. ![]() edit1: Nee, Quatsch! Die 80mio sind für gehaltene Einträge. Löscht man zwischendurch, so geht die Handle (wenn man ql:Handle() eingesetzt hat) weiter. Bin jetzt bei 120mio bis 4mrd will ich jetzt nicht warten. TestCode: [AUSKLAPPEN] Graphics 400,300,0,2
SetBuffer BackBuffer() Type test Field x% End Type While Not KeyHit(1) t.test=New test t\x=Rand(100) id=Handle(t) a=a+1 If a=>10000 b=b+1:Print b+"0000 - id: "+id:a=0 t.test=First test Delete t.test Wend End |
||
- Zuletzt bearbeitet von hectic am Sa, Jun 09, 2007 14:15, insgesamt einmal bearbeitet
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
1,73 GB auslagerungsdatei 500000000 elemente und ich hab abgebrochen^^
grus an tankbusters avatar^^ |
||
![]() |
Puccini |
![]() Antworten mit Zitat ![]() |
---|---|---|
30MB pro sec ![]() ^^ das is ja ein resourcenfresser wie vista ![]() wieso hast du das mit dem b os komisch gemacht?? |
||
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM www.ragesoft.de Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Puccini hat Folgendes geschrieben: 30MB pro sec
![]() ^^ das is ja ein resourcenfresser wie vista ![]() wieso hast du das mit dem b os komisch gemacht?? Naja, Recourcenfresser bei etwa 1,2 mio neuen Einträgen pro Sekunde, kann man wohl noch verkraften. Es ist so, als würde man jedem Pixel bei einer 1280x960er Auflösung einen 32Bit-Wert übertragen, und das pro Sekunde und dabei alle Informationen speichern ohne zwischendurch zu löschen. Also geht schon klar.^^ Das mit dem b zum einen, damit nicht jedem Eintrag einmal das sehr langsame Print ausgeführt wird, sondern jeder 10.000ste Eintrag einmal. Das b+"0000" sollte vermeiden, dass b einen Überlauf produziert, während das andere irgendwie weiter laufen könnte (zB mit einem Reset oder etwas anderem unerwartetem). Ich frage mich nur, warum FTC 500.000.000 Einträge haben kann? Ich habe 1GB RAM-Speicher. Eventuell läuft das so lange gut, bis gebrauch der Auslagerungsdatei gemacht wird. Da so ein Handling eh unnütz für Spiele ist, könnte dies dann zu einem Overflow führen. Keine Ahnung. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ...
Ja ... der Speicher wird wider freigegeben. Aber der Index endet irgendwann. Und ich wuste nicht wo. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bin auf 83.600.000 Types gekommen (allen wurde nur eine Variable zugewiesen), aber dann hab ich mich nicht weiter getraut ![]() Meine Auslagerungsdatei seht ihr hier:^^ Ich frag mich aber wie FTC auf 500000000 gekommen ist.. naja.. liegt wahrscheinlich am Rechner ![]() Seht euch mal das an... die wichtigen Stellen (ok.. eigentlich ist alles irgendwie wichtig) hab ich ROT makiert! ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
Kernle 32DLL |
![]() Antworten mit Zitat ![]() |
---|---|---|
wen man in die Types ein Bild oder eine Textur läd ist der Ram
sogar noch schneller voll ^^ Hatte mal sowas gebastelt (Texturen in Types speichern), und ich hatte vergessen beim löschen der Types die Textur mit "freizugeben". Das Ergebniss kann man sich vorstellen... Das kam Tankbuster's Avatar sehr nahe ^^ (sehr nah aber auch nur wiel ich nur 1gb Ram hab xD) Selbst wenn man die Texturen jedoch beim löschen freigeben würde, ist die Anzahl der Types dann trotsdem recht begrenzt ...denke ich mal... Grüßle: Kernle |
||
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group