Nach Update schlechte Performance in der App

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
  • Seit dem Update auf Version 3.3 schwankt die Performance der App sehr stark wenn ich durch die breite Auswahl an Emojis scrolle. Wäre es ein Film oder ein Spiel würde ich sagen es "ruckelt". Gerade bei den Listen mit sehr vielen Einträgen wo es dann auch noch Optionen für verschiedene Hautfarben gibt (Der Tab mit den ganzen regulären Emotes z.b.) dauert es teilweise mehrere Sekunden bis die Wischbewegung umgesetzt wird.

    Im Vergleich dazu funktioniert das Scrollen in Listen die zwar viele Einträge, dafür aber keine weiteren Optionen haben nach wie vor wunderbar. Beispielsweise die Liste mit den ganzen Sonderzeichen wo man unter anderem die Sternzeichen und verschiedenen Religionen findet.

    Ich kann lediglich vermuten das es daran liegt das einige Listen zu lang sind das aus irgendeinem Grund die weiteren Optionen für einige Emojis diese Probleme verursachen. Ich hoffe wirklich das wird möglichst bald behoben. Denn im aktuellen Zustand ist es sehr nervig Emojis zu verwenden.

    Das Scrollen durch den Gesprächsverlauf ist nun auch nicht mehr flüssig und wirkt ebenfalls leicht ruckelig.


    Ist es geplant das man vielleicht zum alten Emojisatz zurückkehren kann? Denn die aktuellen treffen meinen Geschmack nicht wirklich. Das aber nur am Rande.

    Einmal editiert, zuletzt von Kazu (14. Dezember 2017 um 14:59)


  • Seit dem Update auf Version 3.3 schwankt die Performance der App sehr stark wenn ich durch die breite Auswahl an Emojis scrolle.
    [...]
    Das Scrollen durch den Gesprächsverlauf ist nun auch nicht mehr flüssig und wirkt ebenfalls leicht ruckelig.

    Tut uns leid, das zu hören. Da viele zusätzliche Emojis dazu gekommen sind, ist natürlich auch der Speicher- und Ressourcenverbrauch beim Darstellen der Emojis angestiegen.

    Das Resultat hängt offenbar sehr stark vom eingesetzten Handy ab. Bei den meisten Handys ist kein wesentlicher Geschwindigkeitsunterschied feststellbar, bei anderen kommt es eben zum erwähnten Ruckeln.

    Es wäre deshalb für uns hilfreich, wenn du uns sagen könntest, was für ein Handy und was für eine Android-Version du verwendest.

    Zitat


    Ist es geplant das man vielleicht zum alten Emojisatz zurückkehren kann? Denn die aktuellen treffen meinen Geschmack nicht wirklich.

    Bei den Emojis in Threema 3.3 handelt es sich um eine aktualisierte Version der bisherigen. Eine Rückkehr zu den Emojis aus früheren Threema-Versionen ist nicht vorgesehen - nicht zuletzt auch, um die volle Kompatibilität zu iOS-Geräten weiterhin zu gewährleisten und sicherzustellen, dass es auch plattformübergreifend zu keinen Missverständnissen kommt.

  • Aus meiner Sicht ist das ein Problem unabhängig vom eingesetzten Smartphone. Ich kann das hier beschriebene Problem (siehe auch anderer Thread) ebenfalls bestätigen. WhatsApp hat allerdings genauso viele Emojis im Angebot und dort läuft alles schön flüssig, zudem sind dort die Emojis auch scharf und nicht verpixelt.

  • Tut uns leid, das zu hören. Da viele zusätzliche Emojis dazu gekommen sind, ist natürlich auch der Speicher- und Ressourcenverbrauch beim Darstellen der Emojis angestiegen.

    Das Resultat hängt offenbar sehr stark vom eingesetzten Handy ab. Bei den meisten Handys ist kein wesentlicher Geschwindigkeitsunterschied feststellbar, bei anderen kommt es eben zum erwähnten Ruckeln.

    Es wäre deshalb für uns hilfreich, wenn du uns sagen könntest, was für ein Handy und was für eine Android-Version du verwendest.


    Ich verwende ein Samsung Galaxy J5 aus der 2015er Reihe. Eine Freundin benutzt ebenfalls ein J5, aus der 2017er Reihe und hat dieses Problem ebenfalls. Android befindet sich bei mir auf Version 6.0.1.

    Ich bin mir nicht sicher ob diese Information hilfreich ist, aber wenn ich z.B. durch den Google Play Store scrolle ist der Bildlauf butterweich und wenn ich in Threema durch Textpassagen scrolle wo länger keine Emojis drin vorkommen. Sobald aber 2-3 Emojis im Spiel sind fängt der Bildlauf an zu ruckeln.

    Einmal editiert, zuletzt von Kazu (14. Dezember 2017 um 17:13)

  • Hallo Kazu, das Problem mit meinem Note II kann ich auch bestätigen. Allerdings ist mir aufgefallen dass das verzögertes Scrollen nur bei den "zuletzt verwendet" vorkommt. Wenn ich die anderen "Reiter" verwendet dann geht es wieder ganz normal.

    Gruß
    DerBär

    -------
    ʕ•ᴥ•ʔ

    Note II / Android 4.*

    Note 8 / Android 9

    ===============================================================================
    „Der Zweifel ist der Beginn der Wissenschaft. Wer nichts anzweifelt, prüft nichts. Wer nichts prüft,
    entdeckt nichts. Wer nichts entdeckt, ist blind und bleibt blind.“

  • Das Problem hat sich zumindest bei mir gerade verlagert und ich verstehe nicht wieso. Vorhin hatte ich die Performanceproblemen bei Listen mit vielen Einträgen. Jetzt bricht bei mir die Performance ab der Liste mit all den Emojis zum Thema Lebensmittel ein und wird nur schlechter umso weiter ich nach rechts scrolle.

    Gibt es sonst eine Möglichkeit für die Nutzer diese Listen mit den ganzen Emojis auszusortieren und bestimmte einfach in den Listen auszublenden? Denn ich finde seit dem letzten Update ist Threema wirklich überladen mit Emojis und viele davon sind zumindest für mich irrelevant.

  • Du kannst die "zuletzt verwendete" einzeln löschen. Einfach auf Emoji antippen und festhalten dann erschein ein Löschsymbol. Ich habe so alle "zuletzt verwendete" gelöscht, jetzt läuft es einiger maßen.
    Viel Erfolg.

    Gruß
    DerBär

    -------
    ʕ•ᴥ•ʔ

    Note II / Android 4.*

    Note 8 / Android 9

    ===============================================================================
    „Der Zweifel ist der Beginn der Wissenschaft. Wer nichts anzweifelt, prüft nichts. Wer nichts prüft,
    entdeckt nichts. Wer nichts entdeckt, ist blind und bleibt blind.“

  • Ich habe es sogar schon mit einer Neuinstallation versucht und habe da nun auch eine neue ID, da ich vergessen habe ein Backup zu machen. Das ist aber nicht weiter schlimm. Die Liste mit den "zuletzt verwendet" Emojis ist bei mir daher entsprechend leer. Die Performanceprobleme habe ich leider trotzdem.

  • Auch nach dem letzten Update besteht das Problem, zumindest für mich weiterhin, einige Listen laufen jetzt wieder ganz normal, während bei anderen die Performance nach wie vor so schlecht ist das ich die Befürchtung habe das die App gleich abstürzt.

    Die betreffenden Listen ist die mit den Früchten und Wettersymbolen, so wie sämtliche Listen die rechts davon sind.


  • Kazu: Was für ein Smartphone hast du denn, mit wie viel RAM?

    Ich verwende ein Samsung Galaxy J5 aus der 2015er Reihe. Ram laut Smart Manager 1,5GB. Festplattenspeicher ist auch noch gut über 1GB frei und andere Apps habe ich im Hintergrund auch nicht laufen.

  • Das Problem ist, dass die Emoji unweigerlich in den Speicher geladen werden müssen. Auf so alten/schwachen Geräten wie dem S5 Mini wird Lagging leider unvermeidlich sein, da es aufgrund der Emoji zu Swapping kommen kann (falls Android Swapping überhaupt aktiviert hat). Wenn der Speicher knapp wird, beginnt Android zudem, Apps und Hintergrundprozesse abzuschiessen.

    Das Ganze verschärft sich zudem dadurch, dass jedes Jahr immer mehr Emoji dazukommen.

    Möglicherweise verbessert sich die Performance, wenn du unter "Einstellungen > Erscheinungsbild > Emoji-Stil" auf "System-Emojis" umstellst?

  • Nun, das Speicherargument kann ich nicht ganz glauben. Laut diesem "Smart Manager" sind auf meinem Gerät aktuell 350MB frei. Das ist nicht die Welt, allerdings nutzt Threema akut angeblich 100MB. Ich kann mir nicht vorstellen, dass sich Threemas Speichernutzung beim Wechsel auf die Liste der zuletzt verwendeten Emojis plötzlich verfünffacht.

    Angenommen die Anzahl der Smileys ist durch die Hautfarbenwahl wirklich zu groß geworden um ruckelfrei auf meinem Handy angezeigt werden zu können, wieso passiert dies dann auch in der Liste der zuletzt verwendeten? Ich kann mich jedenfalls daran erinnern, dass dies bei einem bestimmten Update von Threema erst zu einem Problem wurde.

    Auch spricht meiner Ansicht nach nichts dagegen, die überlange Smiley-Liste in mehrere aufzuteilen, darin herrscht ohnehin etwas Wildwuchs. (Insofern es denn wirklich daran liegt, was ich nach wie vor bezweifle.)

    Den Emoji-Stil auf System-Emojis umstellen umgeht das Problem komplett, da die Emojis dann von der Tastatur-App bereitgestellt werden. Überspitzt gesagt verbessert sich die Performance auch, wenn ich Signal statt Threema nutze. ;)

    Apropos, in Signal habe ich das Problem nicht, allerdings gibts dort auch keine Hautfarben zur Auswahl. Dies als Hinweis nehmend habe ich eben meine gesamte Liste an zuletzt verwendeten Emojis gelöscht und dann nur solche aus den performanten Listen hinzugefügt. Mit dem Resultat, dass sich die Historie jetzt auch flüssig durchscrollen lässt. Zum Vergleich dann ein Dutzend Smileys angewählt (keines dieser mit der Hautfarbenoption) und der untere Teil (also der mit den Älteren) lässt sich noch flüssig scrollen, sobald die Smileys ins Bild kommen fängts an zu ruckeln.

    Also wenn man mich fragt, ist das einfach ein klassischer Bug. Vielleicht wurde was mit der Auflösung verbockt und daher müssen Smileys zur Anzeige skaliert werden oder was auch immer, aber konsistente Systemüberlastung sieht definitiv anders aus.


  • Nun, das Speicherargument kann ich nicht ganz glauben. [...]
    Also wenn man mich fragt, ist das einfach ein klassischer Bug. Vielleicht wurde was mit der Auflösung verbockt und daher müssen Smileys zur Anzeige skaliert werden oder was auch immer, aber konsistente Systemüberlastung sieht definitiv anders aus.

    Natürlich müssen die Emojis skaliert werden, aber das ist nicht das Problem.

    Wer ein bisschen Ahnung von Software-Entwicklung hat, weiss, dass solche Aufgaben normalerweise mittels sogenannter "Sprite Sheets" gelöst werden.

    Weil das Laden von Tausenden einzelner Bilder (und Emojis sind nichts anderes als kleine Bilder) aus dem Festspeicher extrem ineffizient ist, kombiniert man die vielen kleinen Bilder zu einem grossen Bild. Damit muss nur einmal ein Bild geladen werden. Bei der Darstellung eines Emojis wird dann einfach der passende Ausschnitt aus diesem Bild verwendet.

    Diese Softwaretechnik wurde schon bei den ersten Spielkonsolen und Heimcomputern verwendet - ist aber immer noch aktuell.

    Nun ist bei Android - je nach Handy und Android-Version - die Grösse solcher Bilder (in der Fachsprache "Bitmaps") leider mehr oder weniger limitiert und ebenso der Speicher, der für solche Bitmaps verwendet werden kann. Die aktuell 2823 Emojis im Unicode-Standard passen damit nie und nimmer auf ein einziges Bild. Also müssen die Emoji-Bilder auf mehrere Sprite Sheets verteilt werden. Je mehr Emojis es gibt, desto mehr Sprite Sheets werden benötigt.

    Die Liste der zuletzt verwendeten Emojis ist dabei besonders problematisch, weil dort, je nachdem wie die Liste zusammengesetzt ist, im schlimmsten Fall Emojis aus allen möglichen Sprite Sheets vorkommen. Es werden dann nacheinander alle Sprite Sheets geladen.
    Wenn der Bitmap-Speicher erschöpft ist, entfernt das Betriebssystem das zuerst geladene Sprite Sheet aus dem Speicher und das Spiel beginnt von vorn, falls wieder ein Emoji aus dem ersten Sheet kommt.

    Dort liegt also der Hund begraben und dbrgn hat das richtig erkannt: Der Speicher, der für Bitmaps verwendet werden kann, ist auf deinem Handy aus irgend einem Grund knapp, was ein häufiges Neuladen der Sprite Sheets bewirkt - und damit kommt's zum beobachteten Ruckeln.

    Ich weiss nicht, ob man da als User direkt etwas dagegen machen kann. Es scheint ja nur eine kleine Minderheit der Nutzer zu betreffen. Wäre spannend zu wissen, was diese gemeinsam haben (vielleicht eine Bildschirmdimmer-App oder grosse Hintergrundbilder, welche den Bitmap-Speicher beanspruchen?)

  • Hi Claus,

    Danke für die Erläuterungen zu Sprite Sheets. Ich bin zwar selbst Software-Entwickler, habe mit GUI-Programmierung allerdings keine Berührungspunkte.

    Ich hatte die Idee, mit 'adb shell' etwas das System zu beobachten, während ich in der Emoji-Liste rumruckle - mangels strace leider nur recht oberflächlich. CPU scheint jedenfalls nicht das Bottleneck zu sein, Threema benötigt maximum 16%. Hinsichtlich RAM bin ich unschlüssig, 'free' zeigt mir zwar teils nur 30MB freien Speicher an, aber auch 1,2GB buffers/cache. Die Werte der Threema-App in /proc/<pid>/status ändern sich jedenfalls nicht signifikant beim Wechsel in die Emoji-Historie.

    Könnte das ganze ein Problem mangelnden Graphikspeichers sein? Dessen Auslastung ist ja meistens nicht so einfach zu beobachten. :(

    Edit:

    Doch noch was vergessen: Während dem Ruckeln sehe ich Log-Meldungen folgenden Stils in 'logcat':

    11-17 19:07:09.791 7723 7723 I Choreographer: Skipped 60 frames! The application may be doing too much work on its main thread.
    11-17 19:07:10.376 7723 7723 I Choreographer: Skipped 34 frames! The application may be doing too much work on its main thread.

    Einmal editiert, zuletzt von Phil (17. November 2018 um 19:09)

  • Yep, IIRC redet Claus vom Effekt des Swappens zwischen RAM und GPU Memory was genau derartiges Stottern verursachen kann.

    Edit: Ah, wobei Android Geräte wohl hauptsächlich Unified Memory nutzen, insofern ignorier mein Gelaber. In dem Fall scheint RAM einfach knapp zu sein. Ich kann mir sehr gut vorstellen, dass Sprites unter Caching gelistet werden, denn sie können ja jederzeit neu geladen werden.

    (Um Verwirrung zu vermeiden: Ich arbeite bei Threema, spreche hier aber für mich.)

    Einmal editiert, zuletzt von f09fa681 (17. November 2018 um 23:15)