Frage von Fragee1456, 114

Wieso ist Java so blöd gemacht?

Hallo, habe die Frage eben gestellt aber mit einem anderen Titel...mal hoffen dass die jetzt nicht gelöscht wird, wir sind ja nicht im Kindergarten! Glaub ich jedenfalls! ALSO: jeder der nen Android Smartphone hat dem fällt es nach ca. Einem Jahr auch auf, dass Android immer Träger und langsamer wird, und Tastatur Eingaben oft verspätet rüberkommen. Android wurde aufgrund Java programmiert jedenfalls die basis besteht aus Java? Aber wieso passiert des? Was läuft mit Java schief?

Expertenantwort
von TeeTier, Community-Experte für programmieren, 59

Das liegt nicht an der Sprache Java, sondern an den Bits in CPU und Speicher. Die nutzen sich bei Gebrauch nämlich ab, und nach einer Weile kann ein einzelnes Bit dann nicht mehr 0 und 1 Speichern, sondern nur noch Werte zwischen Null und 0,9 oder manchmal sogar nur noch 0,8 oder gar 0,7.

Wenn ein Bit jetzt nicht mehr genaue Boolesche Werte speichern kann, sondern nur noch irgendwelchen Fuzzy-Quatsch dazwischen, dann verschluckt sich die CPU daran, und muss oftmals "länger" hinschauen um einen Wahrheitswert eindeutig zuordnen zu können.

Und genau DAS macht sich dann darin bemerkbar, dass dein Android mit der Zeit langsamer wird.

Bei Desktop-Computern merkst du das nur nicht, weil die wesentlich mehr Bits zur Verfügung haben und die Bits sich dabei im Schnitt wesentlich langsamer abnutzen.

Der dazu gehörige Fachbegriff ist übrigens "Bit-Abnutzungs-Faktor" oder kurz BAF und bezeichnet die durchschnittliche Abnutzung aller Bits in deinem Gerät.

Wie gesagt, wenn der Faktor bei 0,9 liegt, merkt man schon dass das Gerät immer langsamer wird. Bei einem Faktor von 0,7 sind viele Smartphones gar nicht mehr zu gebrauchen.

Falls dich das Thema der Bitabnutzung interessiert:

https://de.wikipedia.org/wiki/BAF\_%28Bitabnutzungsfaktor%29

Viel Spaß beim Lesen! ;)

Kommentar von KnusperPudding ,

Klingt sehr plausibel, allerdings hab ich wohl zu voreilig positiv bewertet, denn weder der Wikipedia-Artikel existiert noch finde ich google-hits zu dem Thema.

Daher meine Frage: ehrlich? Ich hab mich mit dem Thema nie aus einander gesetzt und würde das auch irgendwo gerne verstehen.

Deine Kompetenz zweifel ich eigentlich nicht an. Umso verwunderter bin ich nur warum ich zu dem Thema nichts finde. Danke im vorraus.

Kommentar von webflexer ,

Selten so viel Müll auf einmal gelesen.

Kommentar von SirNik ,

Klingt vielleicht Plausibel für unahnende...aber überleg mal: 1 = strom fließt, 0 = kein strom, und so weiter. es gibt keine zwischenwerte. es gibt durchaus das Problem, dass wegen Störungen bits falsch interpretiert werden, da die Spannungsgrenze zu nieder oder zu hoch ist (depending on Prozessor und so: bsp: 5V = High/1, 0V = Low/0; wenn wegen Störungen jetzt Spannungspegel absinkt/steigt, dann kann es zu falschen Interpretationen kommen), aber das sind äußere Einflüsse, mir wäre nichts bekannt, dass die Internen Komponenten sich mit der zeit störerisch abnutzen. Wenn Verschleiß, dann nicht so........

Kommentar von maximilianus7 ,

da bin ich aber BAFf  ;-)

Kommentar von TeeTier ,

Au weia, so viele Kommentare und Upvotes. Damit habe ich überhaupt nicht gerechnet. ><

Ganz ganz selten verspüre ich das Bedürfnis, mir einen Scherz zu erlauben, und gestern Abend äußerte sich das dann im Halbschlaf in obiger Antwort. War vielleicht etwas zu subtil ... sorry dafür an alle Mitleser! :)

Kommentar von KnusperPudding ,

Zugegebenermaßen hat der voll gesessen. Darf ja auch mal erlaubt sein.

Antwort
von KnorxyThieus, 63

Hallo,

das muss aber nun wirklich nicht an der Programmiersprache liegen.

Da könnte man ja genauso behaupten, C sei eine dumme Sprache, weil Windows damit programmiert wurde, und das ...

Aber daran liegt es mitnichten. Es kommt in den meisten Fällen darauf an, was der Programmierer anordnet, weniger auf die Sprache. Die Sprache könnte das Endprodukt höchstens beeinflussen, wenn sie sehr ausbremsend gestaltet ist. Dies würde sich aber gleich bemerkbar machen, und Java ist nicht allzu langsam :)

Für solche Löschungsbeschwerden etc. kannst du dich übrigens oben ans Forum oder unten ans Impressum wenden. :)

Kommentar von Fragee1456 ,

Hab schon das Team per Email kontaktiert also auf nicht einverstanden gedrückt, und hab gefragt was des soll. danke für deine Antwort :)

Kommentar von KnorxyThieus ,

Nun ja, vermutlich ist irgendjemandem deine harsche Kritik aufgestoßen.

Antwort
von androhecker, 46

Java ist eine Sprache und hat nichts mit Geschwindigkeit zu tun, mal ganz davon abgesehen, dass der Linux Kernel in C geschrieben ist und ART, also der Grundbaustein von Android in C/C++.
Die meisten Geräte werden nur langsam weil die Hersteller zu blöd sind richtige Updates raus zu bringen und die Hardware eben nicht mehr die neueste ist, ein Nexus Gerät funktioniert auch nach 3 Jahren noch problemlos.
Noch mal zu Java: Wie schon erwähnt ist Java ein Sprache und hat damit relativ wenig mit Geschwindigkeit zu tun, eher die Java Virtual Machine, welche bei Android das Android Runtime ist, welches aber sogar sehr gut gemacht ist.

Kommentar von Fragee1456 ,

naja, ich hab nen Huawei mein Freund nen Samsung, beide Geräte sind Dumm und wir haben beide die gleichen Laggs .

Kommentar von RakonDark ,

dann habt ihr vielleicht beide schlechte apps installiert . mein samung macht auch gerne mal schrott , da hilft nur neustart , dann allerdings läuft alles wieder . möglich ist aber das nach jahren auch etwas dazu kommt bei den betriebsystemen und entsprechend alte prozessoren dann mit den neuen feature nicht wirklich klar kommen .

Wenn wir bei Java sind , sind es die Apps die Probleme erzeugen , nicht das Betriebsystem selber und das liegt dann am App Programmierer und nicht an der Programmiersprache an sich .

Kommentar von androhecker ,

Tja Pech, ich kaufe nur noch Nexus Geräte und habe nie Probleme. Motorola ist bei dem Thema auch noch ganz gut, alle anderen Hersteller eher nicht.

Kommentar von androhecker ,

Ich kenne mich da mehr als genug aus, außer dieser App hier habe ich keine schlechten Apps installiert und mein S2 hat schon nach 2 Jahren Verwendung mehr oder weniger den Geist aufgegeben, selbst nach einer kompletten Neuinstallation des Systems ist das jede halbe Stunde abgestürzt, und ansonsten war es auch eher träge. (Mal ganz davon abgesehen dass ich außer einem kleinem Patch kein einziges Update bekommen habe)

Antwort
von jxnass, 75

Es ist angeblich die "Hardware'' Die CPU wird träge, nimmt nicht weniger Strom auf, Speicher vollgemüllt...

Kommentar von Fragee1456 ,

Das finde ich, isf völliger Quatsch. Aufm PC passiert sowas nicht, klar Smartphone CPUs sind komplett anders aber trotzdem nicht komplett verschieden! Denn wenn man Android neu aufsetzt funktioniert es auch einige Zeit ganz ok, nach einiger Zeit aber wieder so langsam wie zuvor. Speicher vollgemüllt...naja kann auch mitunter daran liegen, das meiste bezieht sich aber auf den ram und hat mit dem internen Speicher wenig, bis kaum zu tun!

Kommentar von jxnass ,

deswegen habe ich auch angeblich geschrieben, dies ist die Erklärung, aber ich denke das dies eine Marketingstrategie ist um ein neues Handy zu kaufen, wobei es oft zum teil an Junk daten aufm Handy liegt.

Kommentar von Fragee1456 ,

jop

Antwort
von Shooteger, 54

Liegt nicht an java oder der software sondern an der Hardware! Die wird halt auch abgenutzt! Sie kommst du auf Java? Das hat damit wirklich net viel zu tun..

Antwort
von MalNachgedacht, 10

Ein Grund ist der verwendete Flash-Speicher der im Lauf der Zeit typischerweise immer voller wird - und Flash-Speicher wird beim Schreiben langsamer wenn er fast voll ist.

Auch viele installierte Apps erledigen teils Dinge im Hintergrund die aber Rechenleistung brauchen welche dann für andere Apps die man gerade verwendet fehlt.

Auch das Upgrade auf neuere Androidversionen kann u.U. dazu führen das ältere Geräte danach langsamer erscheinen...

Am besten Mal ein bisschen ausmisten - nicht benötigte Apps löschen, im Taskmanager schauen welche Apps die ganze Zeit im Hintergrund laufen und auch die Speicherkarte ein bisschen ausmisten so das sie nicht zu mehr als 80% belegt ist

Schlecht programmierte Apps die irgendwelche Daten speichern und nie wieder löschen können im Lauf der Zeit auch langsamer werden weil der gesammelte Datenmüll immer mehr wird.
Deinstallieren und Neuinstallieren kann da helfen.

Mit Java hat das ganze nichts zu tun

Kommentar von Fragee1456 ,

Naja, iwie mag ich Android net mehr. Der eine mag Android der andere iOS find aber aus eigenem empfinden dass ios flüssiger läuft und viele Leute bestätigen dies auch!

Kommentar von MalNachgedacht ,

wie flüssig iOS oder Android läuft hängt am Ende auch vom Gerät ab.

Wenn Du ein aktuelles iOS auf einem alten iPad 2 installierst soll es mit der "Flüssigkeit" auch nicht mehr so weit her sein - wie man so liest.

Keine passende Antwort gefunden?

Fragen Sie die Community