Hören Sie auf, die Netzwerkleistung jedes Mal zu zerstören, wenn eine App nach WLAN-Netzwerken sucht

Beim Versuch, schlechte Video-Chat-Qualität zu debuggen, bemerkte ich, dass bestimmte Apps periodische Ping-Latenzspitzen verursachen, selbst wenn sie meinen Router anpingen.

Ich habe das Problem darauf zurückgeführt, dass die Apps (z. B. Genymotion, qbittorrent) alle paar Sekunden nach WLAN-Netzwerken zu suchen scheinen. (Als ich die Debug-WLAN-Protokollierung einschaltete, sah ich immer wieder solche Zeilen, Info: <airportd[74491]> SCAN request received from pid 76811 (genymotion) with priority 0die mit den Latenzspitzen korrelierten.)

Gibt es eine Möglichkeit für mich, dies zu verhindern? Es bedeutet im Grunde, dass ich Genymotion nicht ausführen und gleichzeitig einen Videoanruf führen kann, da es alle 10-15 Sekunden stottert.

Haben Sie versucht, den Airportd-Prozess (seinen Speicher) zu überwachen? Vielleicht den Computer neu starten oder airportd killen?
Das Problem tritt immer dann auf, wenn airportd nach neuen Netzwerken sucht - es stellt sich heraus, dass die "fehlverhaltenden" Apps alle paar Sekunden nach offenen WLAN-Netzwerken abgefragt haben (ich habe gerade die Frage basierend darauf bearbeitet). Aber ich sehe nichts Nützliches im Aktivitätsmonitor; airportd schwebt um die 20,6 MB verwendet. Das Problem besteht auch nach Neustarts.
Ich bin froh, dass meine Intuition bezüglich airportd richtig war :) Ich habe ein bisschen gegoogelt, und es scheint, dass jemand das gleiche Problem mit qbittorrent hatte . Es scheint von Qt zu kommen.
Das Ticket existiert bereits auf dem Qt-Tracker: bugreports.qt.io/browse/…
Ich habe news.ycombinator.com/item?id=14816448 gefunden . Könnten Sie versuchen, "die Umgebungsvariable QT_BEARER_POLL_TIMEOUT auf -1 zu setzen"? Es scheint ein bekanntes Problem zu sein: Die Lösung für Windows ist auch hier beschrieben, aber der Code in diesem Artikel lässt mich glauben, dass es auch unter OSX funktionieren wird :)
Wow, das ist meinen Google-Kenntnissen völlig entgangen, danke! Leider funktioniert diese Lösung zumindest bei meiner Genymotion-Installation nicht. Vielleicht enthält Genymotion eine ältere Version von Qt? Wenn dem so ist, gibt es wahrscheinlich keine Hoffnung, außer dass ich sie dazu bringen kann, sie zu aktualisieren oder Qt zu bugsieren, um dieses schreckliche Problem zu beheben
Ja, habe mir das App-Bundle angesehen; es verwendet 5.4.2.
OK, der Genymotion-Support hat mir einen Fix für ihr Anwendungspaket gegeben: rm /Applications/Genymotion.app/Contents/{,MacOS/player.app/Contents}/PlugIns/bearer/libq{corewlan,generic}bearer.dylib. @Labo, wenn Sie eine tatsächliche Antwort posten, werde ich Ihnen das Kopfgeld dafür aussprechen, dass Sie es bis zum Qt-Fehler verfolgt haben!
Interessant an Genymotion, ich konnte ihre Quelle nicht finden. Danke, ich schreibe gerade eine Antwort! Und fürs Protokoll, ich habe deine Frage gefunden, weil mich ein Freund in deinem Facebook-Post markiert hat ;)
Ich habe festgestellt, dass Ortungsdienste auch WLAN-Scans auslösen. Einstellungen → Sicherheit & Datenschutz → Ortungsdienste → Ortungsdienste aktivieren = Aus

Antworten (1)

Warum das passiert

Es stammt aus der GUI-Bibliothek Qt , die in beiden Programmen verwendet wird. Mehrere Leute haben das gleiche erlebt und berichten davon:

So lösen Sie es für die neuesten Versionen von Qt

Setzen Sie die Umgebungsvariable QT_BEARER_POLL_TIMEOUTauf -1.

QT_BEARER_POLL_TIMEOUT=-1 open -a qbittorrent

Das Problem tritt auch unter Windows auf, es wird ähnlich gelöst:

set QT_BEARER_POLL_TIMEOUT=-1
qbittorrent.exe

Verweise:

Wie man es für Genymotion löst

Genymotion verwendet derzeit die Qt-Version 5.4.2, die QT_BEARER_POLL_TIMEOUT.

@Ben Kuhn hat den Support kontaktiert und die Lösung besteht darin, diesen Befehl zu starten:

rm /Applications/Genymotion.app/Contents/{,MacOS/player.app/Con‌​tents}/PlugIns/beare‌​r/libq{corewlan,gene‌​ric}bearer.dylib