2016-09-17 5 views
2

Ich entwickle eine Mathematik Web-Anwendung (http://www-fourier.ujf-grenoble.fr/%7eparisse/xcasen.html) von C++ auf Javascript von emscripten 1.34.1 kompiliert. Leistung ist gut in Firefox 45, zum Beispiel Factoring 2^128 + 1 bis 59649589127497217 × 5704689200685129054721 von ifactor (2^128 + 1) dauert 0.1s == Zeit (ifactor (2^128 + 1)) auf meinem Mac mit Firefox 45 Aber in Firefox 48 (und auch Firefox nächtlich), ist es viel langsamer, 10 * bis 20 * langsamer für den ersten Lauf, nächste Läufe sind 2 * bis 10 * langsamer): [link to test] (http://www-fourier.ujf-grenoble.fr/%7eparisse/xcasen.html#+ifactor(2^128 + 1) & + Zeit (ifactor (2^128 + 1) &)asm.js 10 * langsamer in Firefox 48 als Firefox 45

Ist es mit der emscripten-Version verwandt? Gibt es eine Problemumgehung (abgesehen davon, dass ich meinem Benutzer gesagt habe, dass er die Firefox-Installation herunterstufen und das Upgrade stoppen soll)?

Antwort

4

Es sieht so aus, als ob Ihre Anwendung das Speicherwachstum asm.js verwendet (die Option ALLOW_MEMORY_GROWTH emcc). Browser haben decided to stop supporting that, was bedeutet, dass asm.js + Speicherwachstum nicht länger asm.js Optimierungen erhält.

Wenn Sie die Speichererweiterung vermeiden können, sollte die App wie gewohnt mit der vollen asm.js-Geschwindigkeit ausgeführt werden.

+0

In der Tat, Ersetzen-ALLOW_MEMORY_GROWTH = 1 durch -s TOTAL_MEMORY = 64000000 scheint das Problem zu beheben, danke! –

Verwandte Themen