Jypeli icon indicating copy to clipboard operation
Jypeli copied to clipboard

CustomBatcher luokan tekemä piirto on hyvin hidasta

Open roeyskoe opened this issue 3 years ago • 2 comments

Erityisesti ongelma mobiililla, havaittavisa myös pc:llä hyvin pitkällä tekstillä.

Vaikuttaisi varaavan aika ahkerasti muistia, todennäköisesti syynä CustomBatcherin huono toteutus.

    public override void Begin()
    {
        Label teksti = new Label();
        teksti.Text = "Testi tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti\nTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti tekstiTesti teksti";
        Add(teksti, 0);

        Keyboard.ListenArrows(ButtonState.Down, (v)=>Camera.Position += v, null);
    }

roeyskoe avatar Mar 14 '23 17:03 roeyskoe

Saman ongelman saa toteutettua myös ProgressBar luokalla

public override void Begin()
    {
        for (int i = 0; i < 10000; i++)
        {
            var Palkki = new ProgressBar(50, 50);
            Palkki.Color = Color.Black;
            Add(Palkki, 0);
        }

        Keyboard.ListenArrows(ButtonState.Down, (v) => Camera.Position += v, null);
    }

Puhelimella ei tosin tarvitse tuota 10000 palkkia vaan yksittäinenkin vaikuttaa riittävän.

juvonevi avatar Mar 14 '23 19:03 juvonevi

Päivitin tekstin piirtoa tehokkaammaksi, nyt pitäisi toimia paljon paremmin. Jypelin piirtorutiinit kaipaavat vielä jonkun verran parantelua, joten varmasti löytyy vielä tilanteita joissa erityisesti mobiililaitteiden suorituskyky on aika surkea.

roeyskoe avatar Mar 15 '23 17:03 roeyskoe