summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeif Lotfy <seif@lotfy.com>2013-04-13 18:36:55 +0200
committerSeif Lotfy <seif@lotfy.com>2013-04-13 18:36:55 +0200
commite327f373ce225c7b9b4f1e47635fc884caec6d16 (patch)
treef3e3bdfea68e5e640a9f96b4484446b22be731f7
parent7aa0225414eaffdbcbc0e1e271eb2cc60966d366 (diff)
downloadzeitgeist-memoryfixes.tar.gz
add flags for memory managmentmemoryfixes
-rw-r--r--libzeitgeist/Makefile.am17
-rw-r--r--libzeitgeist/sql.vala19
-rw-r--r--src/Makefile.am9
-rw-r--r--src/engine.vala11
4 files changed, 56 insertions, 0 deletions
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;
}