]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Reduce wasm module's starting memory from 128mb to 16mb. The latter value is needed...
authorstephan <stephan@noemail.net>
Sun, 30 Oct 2022 08:39:18 +0000 (08:39 +0000)
committerstephan <stephan@noemail.net>
Sun, 30 Oct 2022 08:39:18 +0000 (08:39 +0000)
FossilOrigin-Name: ed9d93c48752ba6e18edc1238a8ccdbf6bb65c74fb52a89d515f8b0ab6bea13a

ext/wasm/GNUmakefile
ext/wasm/wasmfs.make
manifest
manifest.uuid

index 5316181208e3e6e5ba5da88ffb72245d3b91b248..195c57305b6562f6d5dd8aa1a3f8a091fe1a6acb 100644 (file)
@@ -335,13 +335,32 @@ emcc.jsflags += $(emcc.exportedRuntimeMethods)
 emcc.jsflags += -sUSE_CLOSURE_COMPILER=0
 emcc.jsflags += -sIMPORTED_MEMORY
 emcc.environment := -sENVIRONMENT=web,worker
+########################################################################
+# -sINITIAL_MEMORY: How much memory we need to start with is governed
+# at least in part by whether -sALLOW_MEMORY_GROWTH is enabled. If so,
+# we can start with less. If not, we need as much as we'll ever
+# possibly use (which, of course, we can't know for sure).  Note,
+# however, that speedtest1 shows that performance for even moderate
+# workloads MAY suffer considerably if we start small and have to grow
+# at runtime. e.g. OPFS-backed (speedtest1 --size 75) take MAY take X
+# time with 16mb+ memory and 3X time when starting with 8MB. However,
+# such test results are inconsistent due to browser internals which
+# are opaque to us.
 emcc.jsflags += -sALLOW_MEMORY_GROWTH
-# emcc: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code
-#       slowly, see https://github.com/WebAssembly/design/issues/1271
-#       [-Wpthreads-mem-growth]
-emcc.jsflags += -sINITIAL_MEMORY=13107200
-#emcc.jsflags += -sINITIAL_MEMORY=64225280
-# ^^^^ 64MB is not enough for WASMFS/OPFS test runs using batch-runner.js
+emcc.INITIAL_MEMORY.128 := 13107200
+emcc.INITIAL_MEMORY.96  := 100663296
+emcc.INITIAL_MEMORY.64  := 64225280
+emcc.INITIAL_MEMORY.32  := 33554432
+emcc.INITIAL_MEMORY.16  := 16777216
+emcc.INITIAL_MEMORY.8   := 8388608
+emcc.INITIAL_MEMORY ?= 16
+ifeq (,$(emcc.INITIAL_MEMORY.$(emcc.INITIAL_MEMORY)))
+$(error emcc.INITIAL_MEMORY must be one of: 8, 16, 32, 64, 96, 128 (megabytes))
+endif
+emcc.jsflags += -sINITIAL_MEMORY=$(emcc.INITIAL_MEMORY.$(emcc.INITIAL_MEMORY))
+# /INITIAL_MEMORY
+########################################################################
+
 emcc.jsflags += $(emcc.environment)
 #emcc.jsflags += -sTOTAL_STACK=4194304
 
index f27c9d631ded07e4ecf7f5094fa891d2b36ca796..dfca586ce013f038c972cccbc74797cc7521af0b 100644 (file)
@@ -57,6 +57,7 @@ sqlite3-wasmfs.jsflags += -sLLD_REPORT_UNDEFINED
 #sqlite3-wasmfs.jsflags += --import-undefined
 sqlite3-wasmfs.jsflags += -sMEMORY64=0
 sqlite3-wasmfs.jsflags += -sINITIAL_MEMORY=128450560
+# ^^^^ 64MB is not enough for WASMFS/OPFS test runs using batch-runner.js
 sqlite3-wasmfs.fsflags := -pthread -sWASMFS -sPTHREAD_POOL_SIZE=2 -sENVIRONMENT=web,worker
 # -sPTHREAD_POOL_SIZE values of 2 or higher trigger that bug.
 sqlite3-wasmfs.jsflags += $(sqlite3-wasmfs.fsflags)
index 1cd7a00402f3675e55c3bb4a23ce15cca351bba0..1c3e5c70d62fbea2aaebfce1fd91632ae667b988 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Minor\supdates\sto\sthe\sWindows\sbatch\stools.
-D 2022-10-30T07:01:31.341
+C Reduce\swasm\smodule's\sstarting\smemory\sfrom\s128mb\sto\s16mb.\sThe\slatter\svalue\sis\sneeded\sonly\sfor\sWASMFS-based\sbatch-runner.js,\sas\sWASMFS\sbuilds\scannot\sbe\sconfigured\sfor\sdynamic\smemory\sgrowth\swithout\sa\stremendous\sperformance\shit.
+D 2022-10-30T08:39:18.647
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -487,7 +487,7 @@ F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3
 F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
 F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c
-F ext/wasm/GNUmakefile 94b55d2dea0eb16f82a2691bceeed265273c7fbb61a6063abfbc1efdf70aeb9c
+F ext/wasm/GNUmakefile 63d6b799daa7dff24378370642170a69872bdd225d4d40e8557b07bcdab0fb22
 F ext/wasm/README-dist.txt 2d670b426fc7c613b90a7d2f2b05b433088fe65181abead970980f0a4a75ea20
 F ext/wasm/README.md ef39861aa21632fdbca0bdd469f78f0096f6449a720f3f39642594af503030e9
 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 9120c2f8f51fa85f46dcf4dcb6b12f4a807d428f6089b99cdb08d8ddfcfd88b2
@@ -551,7 +551,7 @@ F ext/wasm/tester1-worker.html d02b9d38876b023854cf8955e77a40912f7e516956b4dbe1e
 F ext/wasm/tester1.html c6c47e5a8071eb09cb1301104435c8e44fbb5719c92411f5b2384a461f9793c5
 F ext/wasm/tester1.js 679013b874152427d302e56f78bf542c47a090a85c8ca010bb4002859431cf61
 F ext/wasm/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd72273503ae7d5
-F ext/wasm/wasmfs.make ee0004813e16c283ff633e08b482008d56adf9b7d42f6c5612f7ab002b924f69
+F ext/wasm/wasmfs.make 86177d02df29cb0eb03c3cc48f07783148834a4c659889908f82625666148fce
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
 F magic.txt 5ade0bc977aa135e79e3faaea894d5671b26107cc91e70783aa7dc83f22f3ba0
@@ -2054,8 +2054,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c76ec31ebf4d80ec8cbd2aa2017e1d6bc32eae66bfbcc130c053ddb403599c6b
-R 363016fa4e28705ed2554d72d33a3740
-U mistachkin
-Z e1214828164be445021f6f541770bc23
+P b42f56205fa8e06431fb1a45c48257d93605fea0ed95bd766f71e27292d1af33
+R fee21034df3950eed20c15397fa0e46a
+U stephan
+Z 5acb90fd6218fca4312e02f1c60a0679
 # Remove this line to create a well-formed Fossil manifest.
index 33b0ec78a8de416b3b5296c9e8260faa9616d0c4..a65b566b1a197e31243e4d0d5ece1d1b35637352 100644 (file)
@@ -1 +1 @@
-b42f56205fa8e06431fb1a45c48257d93605fea0ed95bd766f71e27292d1af33
\ No newline at end of file
+ed9d93c48752ba6e18edc1238a8ccdbf6bb65c74fb52a89d515f8b0ab6bea13a
\ No newline at end of file