From e327f373ce225c7b9b4f1e47635fc884caec6d16 Mon Sep 17 00:00:00 2001 From: Seif Lotfy Date: Sat, 13 Apr 2013 18:36:55 +0200 Subject: add flags for memory managment --- libzeitgeist/Makefile.am | 17 +++++++++++++++++ libzeitgeist/sql.vala | 19 +++++++++++++++++++ src/Makefile.am | 9 +++++++++ src/engine.vala | 11 +++++++++++ 4 files changed, 56 insertions(+) diff --git a/libzeitgeist/Makefile.am b/libzeitgeist/Makefile.am index 67e95635..38c1831b 100644 --- a/libzeitgeist/Makefile.am +++ b/libzeitgeist/Makefile.am @@ -23,6 +23,11 @@ AM_CPPFLAGS = \ $(ZEITGEIST_CFLAGS) \ -include $(CONFIG_HEADER) \ -I $(builddir) \ + -DSQLITE_ENABLE_MEMORY_MANAGEMENT \ + -DENABLE_MEMORY_MANAGEMENT \ + -DSQLITE_ENABLE_STAT3=1 \ + -DENABLE_STAT3=1 \ + -DSQLITE_THREADSAFE=0\ -w \ $(NULL) @@ -31,6 +36,10 @@ AM_VALAFLAGS = \ --pkg gio-2.0 \ --pkg gio-unix-2.0 \ --pkg sqlite3 \ + -D SQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ + -D ENABLE_MEMORY_MANAGEMENT=1 \ + -D SQLITE_ENABLE_STAT3=1 \ + -D ENABLE_STAT3=1 \ $(top_srcdir)/config.vapi \ -C \ $(NULL) @@ -44,6 +53,10 @@ endif libzeitgeist_internal_la_VALAFLAGS = \ $(builddir)/zeitgeist-datamodel-2.0.vapi \ --vapi zeitgeist-internal.vapi \ + -D SQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ + -D ENABLE_MEMORY_MANAGEMENT=1 \ + -D SQLITE_ENABLE_STAT3=1 \ + -D ENABLE_STAT3=1 \ -H zeitgeist-internal.h \ $(NULL) @@ -64,6 +77,10 @@ libzeitgeist_2_0_la_VALAFLAGS = \ $(builddir)/zeitgeist-internal.vapi \ --vapi zeitgeist-2.0.vapi \ -H zeitgeist.h \ + -D SQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ + -D ENABLE_MEMORY_MANAGEMENT=1 \ + -D SQLITE_ENABLE_STAT3=1 \ + -D ENABLE_STAT3=1 \ --library zeitgeist-2.0 \ $(NULL) diff --git a/libzeitgeist/sql.vala b/libzeitgeist/sql.vala index 6c804006..337d712a 100644 --- a/libzeitgeist/sql.vala +++ b/libzeitgeist/sql.vala @@ -305,6 +305,25 @@ namespace Zeitgeist.SQLite database = null; } + public void show_compile_options () + { + int rc; + Sqlite.Statement stmt; + + var explain_sql = "PRAGMA compile_options"; + + rc = database.prepare_v2 (explain_sql, -1, out stmt); + assert_query_success(rc, "SQL error"); + + print ("%s\n", explain_sql); + + while ((rc = stmt.step()) == Sqlite.ROW) + { + var detail = stmt.column_text (0); + print ("===> %s\n", detail); + } + } + #if EXPLAIN_QUERIES public void explain_query (Sqlite.Statement prepared_stmt) throws EngineError diff --git a/src/Makefile.am b/src/Makefile.am index 3deb6c28..2578f550 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -8,6 +8,11 @@ AM_CPPFLAGS = \ -include $(CONFIG_HEADER) \ -I$(top_builddir)/libzeitgeist \ -w \ + -DSQLITE_ENABLE_MEMORY_MANAGEMENT \ + -DENABLE_MEMORY_MANAGEMENT \ + -DSQLITE_ENABLE_STAT3=1 \ + -DENABLE_STAT3=1 \ + -DSQLITE_THREADSAFE=0\ $(NULL) AM_VALAFLAGS = \ @@ -21,6 +26,10 @@ AM_VALAFLAGS = \ $(top_builddir)/libzeitgeist/zeitgeist-2.0.vapi \ $(top_srcdir)/config.vapi \ -C \ + -D SQLITE_ENABLE_MEMORY_MANAGEMENT \ + -D ENABLE_MEMORY_MANAGEMENT \ + -D SQLITE_ENABLE_STAT3=1 \ + -D ENABLE_STAT3=1 \ $(NULL) if EXPLAIN_QUERIES diff --git a/src/engine.vala b/src/engine.vala index e98b4d3d..5260bf72 100644 --- a/src/engine.vala +++ b/src/engine.vala @@ -75,6 +75,7 @@ public class Engine : DbReader { // Any changes to events need to be done here so they'll // be taken into consideration by the extensions (LP: #928804). + var old = Sqlite.Memory.used(); for (int i = 0; i < events.length; ++i) { preprocess_event (events[i]); @@ -102,6 +103,16 @@ public class Engine : DbReader if (err != null) throw err; extension_collection.call_post_insert_events (events, sender); + var cur = Sqlite.Memory.used(); + database.show_compile_options(); + stdout.printf("===> %i\n", Sqlite.compileoption_used("SQLITE_ENABLE_MEMORY_MANAGEMENT")); + stdout.printf("===> %i\n", Sqlite.compileoption_used("ENABLE_MEMORY_MANAGEMENT")); + stdout.printf("====> %lld\n", old); + stdout.printf("====> %lld\n", cur); + Sqlite.Memory.release(100); + stdout.printf("====> %lld\n", Sqlite.Memory.used()); + stdout.printf("=======================================\n"); + return event_ids; } -- cgit v1.2.1