Ergebnis 1 bis 14 von 14
  1. #1
    John Nanoc ist offline Grünschnabel
    registriert
    03-07-2013
    Beiträge
    7

    Question Mysteriöses Performance Problem bei meinem Canvas Projekt

    Hallo erst einmal,

    ich schreibe hier zum ersten mal, weil ich gerade ein relativ Mysteriöses Problem habe wo ich nicht weis wie ich dies Lösen soll.
    Also in alles kürze ich bin gerade dabei ein kleines Spiel zu Programmieren für meinen Bruder zum Geburtstag in Javascript auf Basis des Canvas-Element. Nach dem ich gestern die Fps von 10 auf flüssige 48 gebracht habe ist nun habe ich nun ein weiteres Problem bei dem ich wie gesagt keine Lösung auf die schnelle finden kann. Bei meinem Spiel Spawn ich in regelmäßigen Abständen Objekte die sich auf dann auf dem Spiel Feld Linear bewegen ... was genau da passiert ist denke ich Ehrer Irrelevant. Nun werden die Objekte die ich auf Spielfeld "los lasse" (spawne) zu erst in einen Array geschrieben und dann auf Spielfeld gerendert. Nun komme ich zu meinem Problem welches darin besteht das der Index, nach dem der Typ des Objektes welches gerendert wird bestimmt wird, mir ärger macht. Dies zeigt sich durch temporäres kurzes stocken des Bildes wenn die Funktion zum spawn aufgerufen wird. (davon gehe ich bisher aus, denn die CPU wird am meisten durch diese Funktion belastet). Das dubiose ist nun aber das dies nur der Fall ist wenn ich den Index dynamisch aus einem anderen Array Auslese, hingegen wenn ich direkt den indes statisch einsetzte läuft alles super flüssig.

    hier noch die Code Ausschnittees geht um den ersten Parameter von drawImage)
    So läuft es
    Code:
    function dropClaim(ID){
    
    			claimwidth = bandWidth;
    			cc.drawImage(game['claims'][1]],bandPos[runingClaims[ID]['band']] , 0 ,claimwidth,claimwidth);
    
    }
    So nicht
    Code:
    function dropClaim(ID){
    
    			claimwidth = bandWidth;
    			cc.drawImage(game['claims'][runingClaims[ID]['type']],bandPos[runingClaims[ID]['band']] , 0 ,claimwidth,claimwidth);
    
    }
    [UPDATE]
    Habe gerade noch etwas herum gerätselt wo das Problem liegen kann und wie ich schon ahnte hat es herzlich wenig damit zu tun das ich einen Array verwende .. sondern damit das der Wert der im Array gespeichert ist via Math.floor((Math.random()*8)+1); generiert wird. Was kann ich denn alternativ als Zufalls Funktion nutzen?
    [/UPDATE]
    Es wäre klasse wenn mir Jemand da einen Tipp geben könnte denn der Geburtstag ist morgen und ich muss eigentlich noch so einiges am Level Design machen. Und schon einmal vielen dank im voraus.
    Geändert von John Nanoc (03-07-2013 um 15:49 Uhr) Grund: neue Erkenntnise

  2. #2
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von John Nanoc Beitrag anzeigen
    So läuft es...So nicht
    das dürfte keine riesigen auswirkungen haben

    Zitat Zitat von John Nanoc Beitrag anzeigen
    cc.drawImage(game['claims'][1],bandPos[runingClaims[ID]['band']] , 0 ,claimwidth,claimwidth);
    game.claims[1] bzw. dürfte etwas performanter sein, aber nicht merklich
    bzw. game.claims[runingClaims[ID].type]

    Zitat Zitat von John Nanoc Beitrag anzeigen
    Es wäre klasse wenn mir Jemand da einen Tipp geben könnte denn der Geburtstag ist morgen
    hmm, schenk ihm ein buch

  3. #3
    John Nanoc ist offline Grünschnabel
    registriert
    03-07-2013
    Beiträge
    7

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Nein ein Buch ... einfach kaufen ... das wäre doch zu einfach XD

    Ja was mein Problem angeht verstehe ich das auch nicht sollte Eigentlich keine Auswirkungen habe. Zumal die Funktion nur aller höchsten jede Sekunde zwei drei mal aufgerufen wird ... allerhöchstens.

  4. #4
    John Nanoc ist offline Grünschnabel
    registriert
    03-07-2013
    Beiträge
    7

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    So wie man oben in meinem Update lesen kann habe ich eine neue Erkenntnis erlangt ... vielleicht kann mir ja jetzt Jemand Helfen

  5. #5
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von John Nanoc Beitrag anzeigen
    So wie man oben in meinem Update lesen kann habe ich eine neue Erkenntnis erlangt ... vielleicht kann mir ja jetzt Jemand Helfen
    1 Mio randoms kosten bei mir 3 ms um sicherzugehen, daß der aufruf nicht wegoptimiert wird, habe ich ihn noch auf eine variable addiert, dann sind es 40 ms was wohl eher stimmen wird.
    also auch nicht unbedingt relevant

  6. #6
    John Nanoc ist offline Grünschnabel
    registriert
    03-07-2013
    Beiträge
    7

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Hey ... ich weiss ja nicht eigentlich solte ich das schon drauf haben ne Random funktion zu schreiben aber nur zur Sicherheit kannst du mir mal deine Schreibweise der Funktion hier Posten Danke schon ein mal

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von John Nanoc Beitrag anzeigen
    Hey ... ich weiss ja nicht eigentlich solte ich das schon drauf haben ne Random funktion zu schreiben
    solltest du das? glaube ich nicht, das ist ein komplexes thema
    https://en.wikipedia.org/wiki/Pseudo...mber_generator

    Zitat Zitat von John Nanoc Beitrag anzeigen
    aber nur zur Sicherheit kannst du mir mal deine Schreibweise der Funktion hier Posten Danke schon ein mal
    ich nehme die vom browser. die ist native implementiert. damit bist du schätzungsweise um den faktor 100000 schneller (eher mehr) und hast nur einbussen beim contextwechsel js<->native code.

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Hast du einen Testlink?

    PS: der erste Code kann nicht funktionieren, da er einen Syntaxfehler enthält
    PPS: ich habe den Verdacht, dass es an den verschiedenen Bildern liegt, die du da zeichnen willst. Die müssen ja erst einmal geladen werden. Hast du da ein Preload? Bist du sicher, dass die da noch im Cache liegen?

  9. #9
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von kkapsner Beitrag anzeigen
    PS: der erste Code kann nicht funktionieren, da er einen Syntaxfehler enthält
    sehe ich erst mal nicht

    Zitat Zitat von kkapsner Beitrag anzeigen
    PPS: ich habe den Verdacht, dass es an den verschiedenen Bildern liegt, die du da zeichnen willst. Die müssen ja erst einmal geladen werden.
    das ist vermutlich lokal

    Zitat Zitat von kkapsner Beitrag anzeigen
    Hast du da ein Preload? Bist du sicher, dass die da noch im Cache liegen?
    wenn das nicht so wäre, würden die bilder einfach nicht zu sehen sein

  10. #10
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von hesst Beitrag anzeigen
    sehe ich erst mal nicht
    Da ist eine eckige Klammer zu viel. Nach dem ersten Parameter von .drawImage
    Zitat Zitat von hesst Beitrag anzeigen
    das ist vermutlich lokal
    Vielleicht - aber wir wissen es nicht
    Zitat Zitat von hesst Beitrag anzeigen
    wenn das nicht so wäre, würden die bilder einfach nicht zu sehen sein
    Vielleicht ist er zu ungeduldig... ich versuche nur Erklärungen zu finden...

  11. #11
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von hesst Beitrag anzeigen
    sehe ich erst mal nicht
    Da ist eine eckige Klammer zu viel. Nach dem ersten Parameter von .drawImage
    Zitat Zitat von hesst Beitrag anzeigen
    das ist vermutlich lokal
    Vielleicht - aber wir wissen es nicht
    Zitat Zitat von hesst Beitrag anzeigen
    wenn das nicht so wäre, würden die bilder einfach nicht zu sehen sein
    Vielleicht ist er zu ungeduldig... ich versuche nur Erklärungen zu finden...

  12. #12
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.635

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Zitat Zitat von kkapsner Beitrag anzeigen
    Da ist eine eckige Klammer zu viel. Nach dem ersten Parameter von .drawImage
    Ok, copy&Paste
    Zitat Zitat von kkapsner Beitrag anzeigen
    Vielleicht - aber wir wissen es nicht
    eigentlich wissen wir nichts
    Zitat Zitat von kkapsner Beitrag anzeigen
    Vielleicht ist er zu ungeduldig... ich versuche nur Erklärungen zu finden...
    naja, dann wäre das bild aber einfach nicht zu sehen. das ist aber was anderes als er beschrieben hat.
    wenn er zyklisch das komplette canvas immer wieder neu zeichnen würde (das meinst du glaube ich), könnte man das fehlen des bildes in den 1. paar zyklen vielleicht (mit viel gutem willen) als "stocken des Bildes" beschreiben, aber dann hätte er ganz andere probleme mit der performance.

  13. #13
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.650

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Hm... stimmt. Alles sehr mysteriös...

  14. #14
    John Nanoc ist offline Grünschnabel
    registriert
    03-07-2013
    Beiträge
    7

    AW: Mysteriöses Performance Problem bei meinem Canvas Projekt

    Ich habe nach dem 4. Juli bisher noch nichts weiter daran gearbeitet ... wollte nun aber wieder weiter an dem Projekt arbeiten. Da ich immer noch das selbe Problem habe werde ich hier einfach mal meinem bisherigem Stand zeigen.

    Hier der Link : http://gbdb.lima-city.de/sub/sambly/V_0.1.2/

    Ich muss dazu sagen der js-code ist, wie ich finde, ein heilloses Durcheinander. Das ist dem geschuldet das ich ihn im Halbschlaf geschrieben habe. Nur für den Fall das Jemand das /js Verzeichnis finden sollte.

    Na gut ich wollte nur mal dem Mysterium ein Gesicht geben^^ ... so das ihr das besser verstehen könnt, für den Fall das es noch jemanden Interessiert und vielleicht irgend wie doch noch eine Idee hat.

Ähnliche Themen

  1. Canvas drawImage Problem
    Von xoli im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 03-07-2013, 23:52
  2. JS Performance-Problem
    Von puthy im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 16-04-2010, 22:35
  3. IE7 JavaScript Performance Problem
    Von kkokus im Forum JavaScript
    Antworten: 11
    Letzter Beitrag: 14-01-2008, 11:12
  4. canvas (SVG, VML, excanvas) - IE Problem
    Von darki777 im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 13-12-2007, 09:09
  5. [mysql] Performance Problem
    Von digleu im Forum Serverseitige Programmierung
    Antworten: 0
    Letzter Beitrag: 25-04-2006, 21:49

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •