These are the compile flags of my sqlite3.dll: compile_option ---------------------------------------------------- DEBUG ENABLE_COLUMN_METADATA ENABLE_MEMORY_MANAGEMENT MEMDEBUG OMIT_LOOKASIDE THREADSAFE=0
And these are the set pragma's: PRAGMA cache_size 32768 PRAGMA default_cache_size 32768 PRAGMA page_count 712711 PRAGMA max_page_count 1073741823 PRAGMA page_size 1024 PRAGMA journal_size_limit -1 PRAGMA locking_mode normal PRAGMA automatic_index 1 PRAGMA encoding UTF-8 PRAGMA ignore_check_constraints 0 PRAGMA read_uncommitted 0 PRAGMA recursive_triggers 0 PRAGMA reverse_unordered_selects 0 PRAGMA secure_delete 0 PRAGMA wal_autocheckpoint 1000 PRAGMA writable_schema 0 PRAGMA journal_mode off PRAGMA auto_vacuum NONE PRAGMA synchronous OFF PRAGMA temp_store DEFAULT RBS On Thu, Jan 7, 2016 at 1:39 PM, Bart Smissaert <bart.smissaert at gmail.com> wrote: > > So you should > see results if you start a transaction, do a few update statements, commit > the transaction, the call sqlite3_release_memory(db). > > I tried this with a large table, first with no transaction then with a > transaction > and tried the sqlite3_release_memory directly after the sqlite3_finalize, > but in both cases result still zero: > > sqlite3_memory_used: 37190712 > sqlite3_release_memory: 0 > sqlite3_memory_used: 37190712 > > This was a single update, where I don't think a transaction is helpful. > Still no idea how I can make sqlite3_release_memory produce non-zero. > > RBS > > > > On Thu, Jan 7, 2016 at 6:05 AM, Scott Hess <shess at google.com> wrote: > >> On Wed, Jan 6, 2016 at 3:03 PM, Bart Smissaert <bart.smissaert at gmail.com> >> wrote: >> >> > Have compiled sqlite3.dll (latest) compiled with >> ENABLE_MEMORY_MANAGEMENT, >> > but sofar >> > not been able yet to make sqlite3_release_memory produce anything else >> than >> > 0. >> > What would be the simplest way to make this happen? >> > I don't want to do this with C coding, so it should be some SQL >> scenario or >> > to do with simple >> > SQLite functions such as sqlite3_step, _prepare, -finalize etc. >> >> >> Last time I was paying attention to this, I believe that I found that the >> biggest effect was to free unpinned pages from the page cache. So it >> might >> not free pages if you're in a transaction, for instance. I would guess >> that if you had memory-mapped mode on and are doing only reads, there >> would >> be no pages to free (mmap pages aren't in the page cache). So you should >> see results if you start a transaction, do a few update statements, commit >> the transaction, the call sqlite3_release_memory(db). >> >> -scott >> _______________________________________________ >> sqlite-users mailing list >> sqlite-users at mailinglists.sqlite.org >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >> > >