webassembly/Makefile: Change compiler optimisation from O3 to Os.
Emscripten strongly advises the use of optimisation when compiling with ASYNCIFY enabled. Testing the difference betwen O3 and Os for various configurations gives: flags firmware.wasm micropython.js perf -O3 -s ASYNCIFY 1342003 212845 0 (baseline) -O3 -s ASYNCIFY -s WASM=0 - 7064750 -30% -O3 367131 196569 +140% -O3 -s WASM=0 - 2818260 +30% -Os -s ASYNCIFY 1135450 213064 +40% -Os -s ASYNCIFY -s WASM=0 - 6239768 -30% -Os 295028 196569 +180% -Os -s WASM=0 - 2271358 +30% The first row is prior to this commit. The second and third columns show firmware size (add them to get the total size). The fourth column shows the approximate change in performance compared to the baseline. The performance was measured using run-perfbench.py and the error was large, up to 20%, although general trends in the change in performance could still be seen. In summary, using using Os instead of O3 makes it a little bit faster in all cases, and smaller output (wasm/js) in all cases. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
1ed740b152
commit
5987130afd
@ -15,7 +15,7 @@ INC += -I$(TOP)
|
|||||||
INC += -I$(BUILD)
|
INC += -I$(BUILD)
|
||||||
|
|
||||||
CFLAGS += -std=c99 -Wall -Werror -Wdouble-promotion -Wfloat-conversion
|
CFLAGS += -std=c99 -Wall -Werror -Wdouble-promotion -Wfloat-conversion
|
||||||
CFLAGS += -O3 -DNDEBUG
|
CFLAGS += -Os -DNDEBUG
|
||||||
CFLAGS += $(INC)
|
CFLAGS += $(INC)
|
||||||
|
|
||||||
SRC_SHARED = $(addprefix shared/,\
|
SRC_SHARED = $(addprefix shared/,\
|
||||||
|
Loading…
Reference in New Issue
Block a user