PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript und Browsergeschwindigkeiten



BlueJay
20-09-2006, 15:09
Hallo Leute,

folgendes Szenario:
Javascript-gesteuerte DIVs mit verschiedenen Images schwirren über ein Haupt-DIV, soweit nix Neues.
Neu ist:
1. die beweglichen DIVs (Sprites) sind relativ groß (bis 64x48).
2. ich probiere eine Collision Detection via umhüllendes Polygon, die Sprites werden um einen Pointer auf Polygonkoordinaten erweitert.

Problem:
Teste ich das Ganze mit gentoo und einem AMD-64-System, löppt das Ganze so schnell und zuverlässig, als wäre es in C++/Qt3, egal, ob man Konqueror, Firefox, Mozilla oder Opera (9) nimmt.

Werfe ich den Windows-2000-Emulator an, um IE6 zu testen, schneckt das Ganze fürchterlich, oder es ruckelt wie Sau, und so kann man es nicht veröffentlichen.
Es ist verfrüht, auf den IE zu schimpfen, Mozilla 1.7.13 mit Windows-2000-Emu schneckt genauso.

Frage:
1. Ist das der Emulator, der die Sprites ausbremst?
2. Ist es das 32-Bit-Betriebssystem Windows 2000?
3. Schneckt Windows XP / IE7 genauso?
4. Ist ein 32-Bit-System mit der Polygon-Collision Detection überfordert?

Kann ich hier leider nicht feststellen, weil nur Linux/64-bit-Systeme im Einsatz sind.

Testprogramm:
http://www.gamecraft.de/muellabfuhr/

Javascript:
view-source:http://www.gamecraft.de/muellabfuhr/lunar.js

Deklaration: ziemlich weit oben
Collision Detection: fast unten

so long,
BlueJay

Romanday
20-09-2006, 17:31
Werfe ich den Windows-2000-Emulator an, um IE6 zu testen, schneckt das Ganze fürchterlich, oder es ruckelt wie Sau, und so kann man es nicht veröffentlichen.
Es ist verfrüht, auf den IE zu schimpfen, Mozilla 1.7.13 mit Windows-2000-Emu schneckt genauso.

so long,
BlueJay

Wenn deine Platte groß genug ist, richte dir doch ein Win Partition ein +
installiere IE. Das dauert doch nicht lange.
Emulatoren sind nicht unbedingt perfekt. Ich vermute mal das es daran
liegt.

bischi
20-09-2006, 17:47
Also bei mir ist Win2000 (32bit) auf ner ziemlich alten Kiste drauf (Athlon 1200 - also etwa 5 jährig).

Firefox 1.5.0.7: Ziemlich ruckelfrei, ganz vereinzelt mal ein kleines Stocken

IE 6.0.2800.1106: Ruckelt ganz leicht, jedoch nicht wirklich schlimm.

Opera 9.0: Nur die ganz schnellen und hellen Objekte ruckeln leicht.

Hoffe, das hilft weiter :D

MfG Bischi

BlueJay
20-09-2006, 18:34
Also bei mir ist Win2000 (32bit) auf ner ziemlich alten Kiste drauf (Athlon 1200 - also etwa 5 jährig).

Hoffe, das hilft weiter :D

MfG Bischi

Danke, das war genau das, was ich wollte. Ich nehme an, du hast mit 35ms getestet (Voreinstellung).

Der Rest meiner Platte ist leider mit Filmchen voll (mein Hundi, meine Fische, Feten in unserer Stadt), die Win-2000-Partition wegen Platzmangel rausgeflogen. Bisher war das mit der Emu ja auch ok.

so long,
BlueJay

Pingu
20-09-2006, 19:02
Also für mein Empfinden läuft das für mich flüssig (PowerPC G4 1.5 GHz, Mac OS 10.4.7, Firefox 1.5.0.6).

Pingu

BlueJay
21-09-2006, 08:40
Also für mein Empfinden läuft das für mich flüssig (PowerPC G4 1.5 GHz, Mac OS 10.4.7, Firefox 1.5.0.6).

Pingu

Gut zu wissen, das Apple-Benutzer auch ihren Spaß haben.

Aber sonst erinnert mich das Ganze irgendwie an das Video mit dem Wettrennen eines Fiat - Tourenwagens mit einem Ferrari F1 :D

so long,
uja

undefined
21-09-2006, 09:12
Also erst mal muß ich Sagen das ist ein feines Programm :o
Es läuft bei mir im ersten Durchgang auch unter Wine ruckelfrei.
Im zweiten Durchgang fängt es dann an zu ruckeln.
Mein Debugger bringt aber nur Meldungen die sich auf nicht Indizierte Variablen beziehen.


Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 100, Spalte: 33
Quelltext:
for (i=0; i<obj.length; i++) with(obj[i]) { x=xstart; y=ystart; vy=0; phase=0; }
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 103, Spalte: 7
Quelltext:
else with(obj[0]) { x=xstart; y=ystart; vy=0; vx=0; phase=0; }
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 132, Spalte: 13
Quelltext:
if (aktiv) with(obj[0])
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 140, Spalte: 35
Quelltext:
for (var i=1; i<obj.length; i++) with (obj[i]) if (phase>=0)
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 173, Spalte: 2
Quelltext:
{ with(obj[0])
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 184, Spalte: 2
Quelltext:
{ with(obj[0]) { vx=0; vy=0; phase=0; }
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 197, Spalte: 2
Quelltext:
with(obj[0])
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 210, Spalte: 2
Quelltext:
with(obj[0])
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 223, Spalte: 5
Quelltext:
with(obj[nr])
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 231, Spalte: 17
Quelltext:
else if (nr>0) with(obj[0]) // Bergkette
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 241, Spalte: 15
Quelltext:
{ if (sprit>0) with (obj[0]) // drehen re, li, vorwärts, bremsen
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 253, Spalte: 2
Quelltext:
{ with(obj[0]) switch(phase)
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 269, Spalte: 2
Quelltext:
with(obj[0]) switch(phase)
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 360, Spalte: 2
Quelltext:
{ with(obj[0])
----------
Warnung: assignment to undeclared variable delta
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 4
----------
Warnung: assignment to undeclared variable flit
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 22
----------
Warnung: assignment to undeclared variable fla
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 23
----------
Warnung: assignment to undeclared variable i
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 24
----------
Warnung: assignment to undeclared variable feuer
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 29
----------
Warnung: assignment to undeclared variable krater
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 30
----------
Warnung: assignment to undeclared variable welle
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 31
----------
Warnung: assignment to undeclared variable apollo
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 37
----------
Warnung: assignment to undeclared variable berge
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 38
----------
Warnung: assignment to undeclared variable astra
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 45
----------
Warnung: assignment to undeclared variable telstar
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 47
----------
Warnung: assignment to undeclared variable earlybird
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 48
----------
Warnung: assignment to undeclared variable flattermann
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 49
----------
Warnung: assignment to undeclared variable propeller
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 51
----------
Warnung: assignment to undeclared variable krone
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 54
----------
Warnung: assignment to undeclared variable deltafly
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 55
----------
Warnung: assignment to undeclared variable radkappe
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 56
----------
Warnung: assignment to undeclared variable hotspot
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 60
----------
Warnung: assignment to undeclared variable mix
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 321
----------
Warnung: assignment to undeclared variable miy
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 321
----------
Warnung: assignment to undeclared variable polly
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 322
----------
Warnung: assignment to undeclared variable hot
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 348
----------
Warnung: assignment to undeclared variable hdelta
Quelldatei: http://www.gamecraft.de/muellabfuhr/lunar.js
Zeile: 348
----------
Warnung: deprecated with statement usage
Quelldatei: http://www.gamecraft.de/muellabfuhr/
Zeile: 26, Spalte: 29
Quelltext:
for (i=0; i<obj.length; i++) with(obj[i])
----------
Warnung: assignment to undeclared variable t
Quelldatei: http://www.gamecraft.de/muellabfuhr/
Zeile: 25


Ich verwende eine libjs CVS (1.75) Version.

Das Popup Fenster Verursacht ein Endlos Schleife!

BlueJay
21-09-2006, 18:50
Das ist in der Tat seltsam, das with-Statement ist immer noch Bestandteil von ecma-262, dabei absolut kein Hinweis auf "deprecated".
(Nur ein gewisser Herr polemisiert in seinem Blog dagegen.)

Auch die Deklaration der Globalen ist ecma-262-konform :confused:
(Na, deshalb gibt es mit diesem CVS auch nur Warnungen)

Und welcher Browser produziert die Popup-Endlosschleife?

Etwa der hier?

uja@uja ~/firefox $ ./firefox
Fontconfig warning: line 32: unknown element "cachedir"
Fontconfig warning: line 33: unknown element "cachedir"
Fontconfig warning: "/etc/fonts/conf.d/80-delicious.conf", l ine 18: invalid match target "scan"
[Exception... "Component returned failure code: 0x80004005 ( NS_ERROR_FAILURE) [nsIPrefBranch.getComplexValue]" nsresult : "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: fi le:///home/*****/firefox/components/nsURLFormatter.js :: uf_fo rmatURLPref :: line 129" data: no]


(Firefox2 beta)

so long,
uja

BlueJay
22-09-2006, 08:51
Habe mir das Kerlchen trotz Fehlermeldung zu Gemüte geführt.

Befund:
beim erstenmal ruckelt es beim Steuern wie Sau, beim 2. Laden ist alles ok. Die Endlosschleife ist hier nicht aufgetreten, ebensowenig die JS-Fehlermeldungen. Nur ein bereits bekannter Bug 330494 wurde gemeldet.
(gentoo-x86_64)

Schade, dass ich ihn nur von der Commandline starten kann.

so long,
BlueJay

undefined
22-09-2006, 15:38
Die Fehler Ausgabe mit with() ist ein Bug im Firefox.
https://bugzilla.mozilla.org/show_bug.cgi?id=322430

Die endlos Schleife kommt wenn ich nichts mache und Irgendwann das Popup mit dem Spielstand aufgehen soll.

BlueJay
23-09-2006, 12:36
Wenn die Zeit also um ist...
Auch hier bringt Firefox (1.5) brav nur 1x das Popup. Ich habe gestern aber auch am Timer-Flag gearbeitet, möglicherweise dabei den Bug eliminiert.

so long,
BlueJay