Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Remove xFileControl() handling from the OPFS VFS altogether, re-routing all syncing through xSync() instead. This eliminates superfluous syncing introduced in [a371374148a2], as discussed in forum thread 647d2f811dbc2dfe. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
f809de7f232c8c2731a877c7bf1ad39f |
User & Date: | stephan 2023-05-01 19:28:07 |
Context
2023-05-01
| ||
19:59 | Fix harmless compiler warnings in FTS5. (check-in: f6210017 user: drh tags: trunk) | |
19:28 | Remove xFileControl() handling from the OPFS VFS altogether, re-routing all syncing through xSync() instead. This eliminates superfluous syncing introduced in [a371374148a2], as discussed in forum thread 647d2f811dbc2dfe. (check-in: f809de7f user: stephan tags: trunk) | |
18:52 | Fix harmless compiler warnings. (check-in: 0a926994 user: drh tags: trunk) | |
Changes
Changes to ext/wasm/api/sqlite3-vfs-opfs.c-pp.js.
︙ | ︙ | |||
349 350 351 352 353 354 355 | the whichOp slot. The async-api worker uses Atomic.wait() on the whichOp slot to figure out which operation to run next. */ state.opIds.xAccess = i++; state.opIds.xClose = i++; state.opIds.xDelete = i++; state.opIds.xDeleteNoWait = i++; | < | 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | the whichOp slot. The async-api worker uses Atomic.wait() on the whichOp slot to figure out which operation to run next. */ state.opIds.xAccess = i++; state.opIds.xClose = i++; state.opIds.xDelete = i++; state.opIds.xDeleteNoWait = i++; state.opIds.xFileSize = i++; state.opIds.xLock = i++; state.opIds.xOpen = i++; state.opIds.xRead = i++; state.opIds.xSleep = i++; state.opIds.xSync = i++; state.opIds.xTruncate = i++; |
︙ | ︙ | |||
714 715 716 717 718 719 720 | return rc; }, xDeviceCharacteristics: function(pFile){ //debug("xDeviceCharacteristics(",pFile,")"); return capi.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; }, xFileControl: function(pFile, opId, pArg){ | | < < < | | | 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 | return rc; }, xDeviceCharacteristics: function(pFile){ //debug("xDeviceCharacteristics(",pFile,")"); return capi.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN; }, xFileControl: function(pFile, opId, pArg){ /*mTimeStart('xFileControl'); mTimeEnd();*/ return capi.SQLITE_NOTFOUND; }, xFileSize: function(pFile,pSz64){ mTimeStart('xFileSize'); let rc = opRun('xFileSize', pFile); if(0==rc){ try { const sz = state.s11n.deserialize()[0]; |
︙ | ︙ | |||
775 776 777 778 779 780 781 | error("xRead(",arguments,") failed:",e,f); rc = capi.SQLITE_IOERR_READ; } mTimeEnd(); return rc; }, xSync: function(pFile,flags){ | < > | 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 | error("xRead(",arguments,") failed:",e,f); rc = capi.SQLITE_IOERR_READ; } mTimeEnd(); return rc; }, xSync: function(pFile,flags){ mTimeStart('xSync'); ++metrics.xSync.count; const rc = opRun('xSync', pFile, flags); mTimeEnd(); return rc; }, xTruncate: function(pFile,sz64){ mTimeStart('xTruncate'); const rc = opRun('xTruncate', pFile, Number(sz64)); |
︙ | ︙ |
Changes to ext/wasm/speedtest1-worker.html.
︙ | ︙ | |||
19 20 21 22 23 24 25 | On a slow internet connection this may take a moment. If this message displays for "a long time", intialization may have failed and the JavaScript console may contain clues as to why. </div> </figure> <div class="emscripten" id="module-status">Downloading...</div> <div class="emscripten"> | | | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | On a slow internet connection this may take a moment. If this message displays for "a long time", intialization may have failed and the JavaScript console may contain clues as to why. </div> </figure> <div class="emscripten" id="module-status">Downloading...</div> <div class="emscripten"> <progress value="0" max="100" id="module-progress" hidden='1'></progress> </div><!-- /emscripten bits --> <fieldset id='ui-controls' class='hidden'> <legend>Options</legend> <div id='toolbar'> <div id='toolbar-select'> <select id='select-flags' size='10' multiple></select> <div>The following flags can be passed as URL parameters: |
︙ | ︙ | |||
64 65 66 67 68 69 70 | <div id='test-output'> </div> <div id='tips'> <strong>Tips:</strong> <ul> <li>Control-click the flags to (de)select multiple flags.</li> <li>The <tt>--big-transactions</tt> flag is important for two | | | | < | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <div id='test-output'> </div> <div id='tips'> <strong>Tips:</strong> <ul> <li>Control-click the flags to (de)select multiple flags.</li> <li>The <tt>--big-transactions</tt> flag is important for two of the bigger tests. Without it, those tests create many thousands of implicit transactions, reducing the affected tests to an absolute crawl, in particular with OPFS. </li> <li>The easiest way to try different optimization levels is, from this directory: <pre>$ rm -f jswasm/speedtest1.js; make -e emcc_opt='-O2' speedtest1</pre> Then reload this page. -O2 seems to consistently produce the fastest results. </li> </ul> |
︙ | ︙ |