Kurze Frage — Schnelle Antwort #2

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Ich hab mal ne Frage zu meinem Handy (Samsung Galaxy S4). Normalerweise kann man ja wenn man Musik hört und dann irgendwann der Bildschirm gesperrt wird, das Lied ganz einfach wechseln. Aber seit ich das neue Android-Update runtergeladen hab, funktioniert das nicht mehr!!! Kann mir irgendjemand helfen?

  • na ja, wäre gut, zu wissen, welche App du dafür verwendest. Ich kenn es mit lange die Lauter-Taste drücken -> nächster Song, lange die Leiser-Taste drücken -> letzter Song. So geht es zumindest im VLC. (Android 5.X)

  • Ich habe mich entschieden den Cache, also die ganzen temporären Daten in den RAM auszulagern um die SSD nicht mit den unnötigen Schreibzugriffen zu belasten.

    Ich weiß nicht, wie viel RAM du hast, würde das bei geringem RAM aber lassen. So groß wird der Cache jetzt auch nicht.


    Zu /tmp: tmpfs speichert primär im RAM, kann aber auch in den Swap verlegt werden. Kannst du also dafür nehmen.

  • Ich weiß nicht, wie viel RAM du hast, würde das bei geringem RAM aber lassen. So groß wird der Cache jetzt auch nicht.

    Ich hab hier ne Kiste mit 4GB RAM stehen. Bisher landete alles im /run/shm. Ich hab das Gestern noch etwas beobachtet. Ich war dabei ein paar Folgen Anime zu schauen, und hab dann immer mal wieder mit dem Befehl

    Code
    df -h

    den freien Speicher geprüft. Das Shared Memory scheint nie wirklich über 2xx MB zu gehen, an sich in der Disk viel mehr Platz. Den Swap hab ich nicht beobachtet. Scheint mir aber so als würde er nur selten genutzt

  • wie groß ist das neue ssb update, also das mit dem man sich dann lucas usw laden kann? eigentlich hab ich noch mehr als 2000 blöcke frei, allerdings sagt er mir da ist zu wenig platz. ist dieses update echt so riesig? bzw weiß jemand wieviele blöcke es genau braucht?

  • Mein Spotify funktioniert nicht mehr richtig...


    Wenn ich ein Lied auswähle und auf "Play" klicke, läuft die Zeit unten in der Leiste, aber die Zeit wird nicht angezeigt und es ertönt keine Musik. Ich kann den Regler auch nicht verschieben.
    Bei einer Werbung für die Hits ertönt allerdings Musik, wenn ich mit der Maus über die Anzeige fahre. Ansonsten bringt das Programm aber keinen einzigen Ton hervor.


    Ich hab schonmal versucht, das Programm zu deinstallieren und neu zu installieren, aber es hat sich nichts geändert... :(


    Hat noch jemand ne Idee, was ich machen könnte?

  • Hallo zusammen.


    Ich habe auch mal wieder ein Problem und zwar ein Problem der komplizierteren Art, sollte man meinen.


    Ich mache keinen Hehl daraus, dass es ein Problem ist, dass im Rahmen einer Ausarbeitung für die Uni aufgetreten ist, jedoch ist das Problem kein grundsätzliches, sondern mehr ein "Es wäre echt nett, dafür eine Erklärung zu finden und wir selbst finden keine".


    Im Rahmen der Ausarbeitung haben wir ein Programm geschrieben, dass mithilfe von mehreren Threads halt eine komplexe Rechenoperation ausführt. Wir verändern dabei die Anzahl der Threads und messen, wie schnell die Rechenoperation abhängig von der Anzahl der Threads ausgeführt wird.


    Soweit, so gut. Programmiertechnisch alles paletti. Messen geht auch. Das Problem ist, dass zwei Auffälligkeiten bei den Messergebnissen auftreten, die wir einfach nicht erklären können.


    Dazu sei gesagt: Um den Prof zu beeindrucken, haben wir auf zwei verschiedenen Systemen gemessen. Einen Desktop PC mit einem AMD FX™-61000 Six Code Prozessor und einen Laptop mit einem Intel(R) Core ™ i7-4700MQ CPU.


    So, jedes System hat eine Auffälligkeit.
    An sich passen - wenngleich der PC echt ein Lahmarsch ist - beim Desktop PC alle Ergebnisse zu unseren Erwartungen: Laufzeit wird schneller, bis zu einem bestimmten Punkt, bleibt gleich, wird dann langsam schlechter.
    Problem: Sechs Threads. Denn bei Sechs Threads ist die Berechnung mal eben 100ms langsamer, als bei 4 Threads und 120ms langsamer, als bei 8 Threads.
    Dies liegt allerdings vorrangig daran, dass ich - egal wie oft ich messe - bei 30% aller Messungen Ausreißer nach oben habe, die sogar knapp 200ms langsamer sind und damit den Durchschnitt - um den es ja geht - ordentlich nach oben reißen. Aber egal, wie sauber ich das System halte, wie viel ich im Hintergrund schließe etc. Ich habe immer konstant bei etwa 30% der Messungen diese Ausreißer - immer auf denselben Wert.


    Das zweite System arbeitet an sich schon eher so, wie man es sich denkt. Zwei Threads sind schneller als eine sequentielle Berechnung. Vier Threads sind schneller als zwei. Yay.
    Problem: Sechs Threads sind 40ms langsamer, als vier Threads, acht Threads dann wieder genau so schnell wie vier Threads, zehn Threads wieder so langsam wie sechs Threads, und zwölf Threads wieder so "schnell" wie die vier. usw.
    Was zur Hölle? Wir haben keine Ahnung, woran das liegen könnte o.o

  • Kann an vielem liegen. Prozessoren sind heute definitiv nicht mehr deterministisch. Faktisch schon, für den Realbetrieb wirkt das aber eher nicht-deterministisch. Durch Sachen wie Laufzeitoptimierung, Branch Prediction, Out of Order Execution etc. pp. wird der Programmablauf heutzutage nicht mehr genau vorhersagbar.


    Zu bedenken ist auch, dass das Erzeugen eines Threads Overhead generiert. Denn jeder Thread bindet Ressourcen, die das Betriebssystem erst mal bereit stellen muss. Dazu kommt, dass auch Betriebssysteme das Thread Scheduling mehr oder minder nicht-deterministisch betreiben. Also noch ein Unsicherheitsfaktor.


    Um das besser beurteilen zu können: Was macht euer Algorithmus denn überhaupt? Gibt es IO-Aufgaben? Das wäre wieder etwas, was die Laufzeit beeinflusst.

  • Erstmal wären zweieinhalb Dinge wichtig zu wissen:
    1. Welche Programmiersprache nutzt ihr für eure Messungen?
    2. Welche Art von Rechenoperation führt ihr durch bzw. nutzt ihr dabei dynamische Datenstrukturen?


    Es wäre nämlich durchaus möglich, dass es damit zusammenhängt.

  • könnte außerdem am Betriebssystem liegen, wenn unterschiedliche installiert sind. Threads laufen ja nicht direkt auf dem Prozessor, sondern werden vom OS über den Scheduler gestartet und pausiert. Solange nicht beide Systeme von der Softwareseite (ausnahme Treiber) exakt gleich sind, werden die Ergebnisse nicht wirlich viel mehr zu lassen als "ist schneller"/"langsamer" für einen Vergleich. Die genaue Zeit mit einzubeziehen bringt nur wenig, da ja immer ein paar andere Prozesse im hintergrund laufen.


    Sollte Java als Sprache zum Einsatz kommen (mag für einiges ganz nett sein, hier aber die falsche Wahl): Code, der häufig ausgeführt wird, wird gecacht. Führt ihr ein Programm öffters aus, ohne es zu verändern, kann die JVM beginnen, teile des Codes eben als Nativcode zu cachen und wird dann entsprechend schneller. Je nach JVM und Version können hier außerdem erneut unterschiede auftreten.

  • Also, das ganze wurde in Java Programmiert und wird über Eclipse ausgeführt.
    Es handelt sich bei der Rechnung um 10 bis 50 Schritte einer Wärmediffusiongleichung für einen Würfel.
    Der Würfel ist dabei so klein gehalten, dass der Heap nicht überläuft.


    Und wie gesagt, dass es gesamt gesehen schneller wird, ist toll und genau das, was wir erwarten. Weil wie gesagt, die Anzahl der Threads, die die Rechnung durchführen, wird immer ein wenig hochgesetzt.


    Was halt nur seltsam ist, ist eben die Tatsache, dass auf dem AMD-Prozessor mit 6 Threads immer wieder diese Peaks dazwischen sind, die den Durchschnittswert der Messungen nach oben ziehen.


    Und dass beim Intel die einen Rechnungen ein kleeeeeeines Stück schneller sind, als die anderen.

  • Einfach nur den Mittelwert über alle gemessenen Laufzeiten zu bilden, ist auch nicht der richtige Weg. Für eine statistisch korrekte Auswertung müsste man eher so etwas wie den Gleitenden Mittelwert nehmen. Gibt viele Methoden, wie man Extremwerte korrekt handhabt.


    Dann: Java. Wie prime-dialga schon gesagt hat, hat die Standard-VM noch einen JIT-Compiler und Optimiert den Bytecode ggf. noch weiter. Ist alles konfigurationsabhängig. Ist die berechnung überhaupt atomar? Wenn nein, kann der Thread Scheduler ja jederzeit in der Berechnung den Thread stillegen, der Timer zur Messung wird aber bestimmt weiter laufen.
    Außerdem ist gar nicht gewährleistet, dass sechs Threads auf allen sechs Cores ausgeführt werden. Das kann man so einfach gar nicht beeinflussen. Hinzu kommt, dass AMD Hexa-Cores keine echten Hexa-Cores sind. Die haben zwar sechs Integer-Units, aber nur drei FPU. Kann auch noch einfluss haben, je nach Berechnung.


    Für sowas kommt man um natives C, eigentlich sogar um Assembler kaum rum, da hier alles an Code relevant ist. Dazu kommen dann noch Unsicherheiten durch das Thread Scheduling durch das Betriebssystem und die ganzen prognostizierenden Verhaltensweisen des Prozessors. Und ob man eine Thread oder Prozess wirklich einem Core zuweisen kann, bin ich mir gar nicht so sicher. Eigentlich kümmert sich das Betriebssystem um sowas.

  • Und ob man eine Thread oder Prozess wirklich einem Core zuweisen kann, bin ich mir gar nicht so sicher. Eigentlich kümmert sich das Betriebssystem um sowas.

    Bei einem Linux geht es definitiv, bei einem Windows iirc auch. Hier auf dem Server ist beispielsweise der nginx und der Redis-Server (beides Single-Threaded) fest auf einen Core gepinnt, um den Performance-Verlust durch das verschieben auf die anderen Kerne zu vermeiden.


    @Alaiya, mal einen Profiler benutzt? Der sorgt zwar für einen zusätzlichen Performance-Verlust, kann aber ggf. Aufschluss geben. Generell gilt bei Benchmarks aber der "Heisenberg-Effekt".

  • Hey,


    Mein 3DS ist mir unglücklich runtergefallen. Äußerlich sieht er okay aus, aber sobald ich ihn anschalte sieht man große schwarze Flecken und Kratzer im oberem Bildschirm (das Gehäuse und der Bildschirm an sich sehen okay aus). Scheinbar ist das innere Display gebrochen. Desweiteren geht er nach weniger als 30 Sekunden von alleine aus mit der Meldung: "Ein Fehler ist aufgetreten. Halter den Power-Schalter gedrückt..."


    Eigentlich würde ich ihn ja gern reparieren lassen, da aber die Preise bei 50-100 € liegen macht es fast mehr Sinn direkt einen New 3DS XL zu holen. Hat da jemand Erfahrungen mit der Nintendo Reparatur gemacht?


    Wie sieht es mit einer Account übertragung aus - wird wohl schwer möglich sein wenn das alte Gerät immer wieder ausgeht?

  • Welches kostenlose Antivirenprogramm empfiehlt ihr? Ich hatte am Anfang AVG, aber einige meinten "Wenn schon kostenlos, dann Avira, das ist besser" aber Avira ist irgendwie auch nicht das wahre (Man kann es nicht beneden usw).


    Also... Was verwendet ihr? Was empfiehlt ihr?

  • Also ich empfehle ja "brain.exe", ein besseres Antivirenprogramm gibt es gar nicht!



    Wenn Englisch kein Problem ist, ist das momentan mit Abstand das beste kostenlose Antivirenprogramm. Alle anderen, die da mithalten können, kosten etwas.

  • Nachdem ich nun mit 360 meinen PC gescannt habe, und 360 die "Desktop.ini" als gefährlich eingestuft hat, liegt sie plötzlich bei mir im Autostart Ordner... wenn ich sie aber entfernen will, sagt mein PC "Tu das nicht! It's dangerous to go alone! Wenn du das tust, wird der PC vielleicht nicht mehr funktionieren!" aber vorher war es ja nicht drinnen... x_x Bei jedem Start öffnet sich jetzt auch die Editor-Datei der desktop.ini