| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
| Daten abfrage von Sensoren, performance problem. Was kann man weglassen?
Also, Kugel rollt per Sensordatenabfrage auf dem Bildschirm hin und her(per Neigung des handys) Die Abfrage der Achsendaten erfordert unnormal viel performance(ok, ist halt n handy) Ich wüsste gern was ich hier entfernen kann, ohne einen Error zu erhalten.: PHP-Code: ![]() thx
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Sep 2004
Beiträge: 632
|
Sieht nicht so aus, als wäre in den geposteten Zeilen irgendwas performancehungriges, ausser dem Aufruf der Function, wie die Sensordaten übergeben werden. Wieviel fps bekommst du denn? Ich würde versuchen, die Flash-Anwendnung selber zu optimieren wo es geht. So ein Handy ist wesentlich empfindlicher als ein PC, gerade was Grafik-Berechnung angeht. Hier finden sich einige Empfehlungen http://library.forum.nokia.com/index...42DBCA099.html Geändert von kugelfunk (02-05-2009 um 11:54 Uhr) |
| | |
| | #3 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
|
Danke für die Antwort, ich habe mir die tipps schon längst durchgelesen, viele interessante Dinge, aber da ich eigentlich nur einen ball(vektorgrafik) hin und her bewege und sonst eig nix anzeige, muss ich was am script ändern. Ich habe erstmal die Zachse rausgelassen, es geht schon merkbar fixer, Ich hatte überlegt den kram nur alle 2 frames abzufragen, das wäre warscheinlich noch sensibel genug, und flüssiger. Ich sehe da kein EnterFrame oder so, wieso wird das trotzdem IMMER abgefragt ? sieh : PHP-Code: PHP-Code:
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #4 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
|
Wie bekomme ich eigentlich raus wie viele frames ich bekomme ? -> "Wieviel fps bekommst du denn?" Muss ich da die frames zählen und mit der Zeit(date=new Date.....) verrechnen?xD
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Sep 2004
Beiträge: 632
|
Mit Code: sensors.RegisterForNotification(inParams, callBack); Die framerate kann man bspw. durch gettimer abfragen, also jede Sekunde (oder Durchschnittswert 3 sekunden / 3) die gezählten onEnterFrame-Aufrufe ausgeben. |
| | |
| | #6 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
|
ok werd ich mal machen... Habe folgendes gemacht : Habe in dem "callBack" eine Bedingung eingebaut, er soll nur die werte ausgeben wenn eine zahl 2 ist, diese wechselt zwischen 1 und 2. somit macht er das nur alle 2 frames. PHP-Code: jetzt läuft es merkbar flüssiger.
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Sep 2004
Beiträge: 632
|
Ah ok. Wobei sich das nach deiner Beschreibung so anhört, als würde das Spiel jedes Mal alle Berechnungen durchführen, wenn Sensordaten vom Gerät kommen. (bzw. jetzt jedes 2. Mal). Das wäre ja unnötiger Overhead. Stattdessen brauchst du die Berechnungen ja nur einmal pro Frame, weil nur einmal pro Frame auch was neues gezeichnet wird. Hast du die Berechnungen in der onEnterFrame-Methode drin? Wenn nicht pack sie besser da rein (oder rufe die Berechnungsmethoden von da auf). Stellst du das Spiel später mal zur Verfügung? Würd mich auch interessieren in Bezug auf die Performance. Das Nokia 5800 selber ist von der Beschreibung her eigentlich recht schnell, fast wie ein iPhone. Der Flashlite-Player bremst bislang aber so einiges aus, weil er noch nicht auf performante Vektorberechnungen optimiert ist. Das kommt lt. Wikipedia demnächst mit einer neuen Engine. Geändert von kugelfunk (02-05-2009 um 14:38 Uhr) |
| | |
| | #8 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
|
" _root.deviceAccelerometerDataX = channelData.XAxisData;" das ist ja nur das speichern der daten in die links stehende variable. Die abfrage ist glaube ich : "var channelData = outParam.ReturnValue; " weil "channelData" der wert von "outParam.ReturnValue" zugewiesen wird. und genau das, mache ich genau wie die zuweisung in die variable nur alle 2 frames. Ich schätze, sobald man diese notification durchgeführt hat, sucht er jedes bild nach den daten die der callback anfordert, das heist er macht diese abfrage immernoch jedes frame, aber sendet die daten nur jedes 2., jedes 1. frame geht er das script durch und macht quasi einen "break" da die bedingung nicht erfüllt ist. Jedenfalls funktioniert es halbwegs.. also die leistung ist merkbar gestiegen.. Den ganzen Kram der oben steht, über dem callBack, der wird nur 1mal durchgeführt. (glaube ich) reicht das als erklärung, oder bist du immernoch der Meinung da habe ich quatsch gemacht ? Wenn ich da noch was verbessern kann immer her mit tipps
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #10 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
| PHP-Code:
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #11 (permalink) | |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
| Zitat:
minimale Verbesserungen "weit hinter dem Komma" bewirken. Was du da rausschmeißt sind einfache Wertzuweisungen von einer Variable in die andere, wenn die Callback-Funktion aufgerufen wird, müssen die Werte eigentlich schon "da" sein, ob du die dann noch aus dem Objekt ausließt oder nicht, sollte nicht ins Gewicht fallen. Ohne objektive Messung der Performance wirst du nicht weiterkommen, in deinem Code ist erstmal nichts ersichtlich,was spürbar Performance kosten könnte. Wie werden denn die Werte weiter verarbeitet? Wenn diese Zuweisung so teuer ist, könntest du einfach in _root eine Referenz auf das channelData-Objekt hinterlegen, und aus diesem die Werte eben nur auslesen, wenn du sie auch benötigst.
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) Geändert von Janoscharlipp (03-05-2009 um 08:51 Uhr) | |
| | |
| | #12 (permalink) | |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
| Zitat:
in _root heist ja nur auf die Zeitleiste, oder halt auf die ursprungsebene, stamm was auch immer. Referenz ? AUF das channeldata-objekt ? hm.. das versteh ich grade nicht
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. | |
| | |
| | #13 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
| Neuigkeiten
erst definiere ich das: PHP-Code: PHP-Code: Ergebnis : Auf dem pc habe ich 250 frames, aber da kann er auch nix abfragen^^ Auf dem Handy : Wenn ich den callback immer mache : ca 64 frames. Wenn ich im Callback die bedingung(nur bei "2" -> 1,2,1,2,1,2) einbaue, habe ich ca 88-100 frames, aber die schwanken eigenltich sogar zwischen 70 und 110, weil die Abfrage immer wieder die fps runter reißt. Ob nun 64 oder 88 frames, es sieht überhaupt nicht flüssig aus.(besser als vorher, aber es müsste deutlich besser gehen) -> Ich habe in flash 24 fps eingestellt, mit 64 müsste das mehr als flüssig laufen. Ist an meiner Berechnung (siehe oben) was falsch? (habe die ja dierekt übernommen von der seite)
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #14 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
|
Ok ok, hab n fehler gemacht, man muss bei bild 11 wieder auf bild 2 zurück gehen, nicht jedes bild wie ich es gemacht habe(onEnterFrame)
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. |
| | |
| | #15 (permalink) |
| Flash-süchtiger Registriert seit: Jan 2007
Beiträge: 268
|
Also nochmal. Habe das fps dings jetzt richtig eingestellt^^ Wenn ich jedes 2. bild abfrage habe ich 10-18 frames/sek (so siehts auch aus -.-) Wenn ich jedes bild abfrage, habe ich 7-10 frames/sek (kotz) Jetzt habe ich das nochmal auf jedes 3. geändert, komme auf 14-19 fps (jetzt wird die sensibilität/Reaktion des balls immer schlechter, logisch..)
__________________ http://kyl3r.ky.funpic.de ->Es gibt 3 Arten von Mathematikern ; Die einen können bis 3 zählen , die anderen nicht. Geändert von KYL3R (03-05-2009 um 14:02 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |