On Sat, Jan 14, 2012 at 10:42 AM, Dan Kennedy <danielk1...@gmail.com> wrote:
> On 01/14/2012 04:49 AM, John Elrick wrote: > >> >> So, obviously the problem is that _malloc is being called a much larger >> number of times by 3.7.9 in this particular circumstance -- roughly 70 >> times as often. _memcpy demonstrates roughly 6 times as many calls I >> ran >> a test with a much smaller dataset tracking every call to malloc back to >> the main source line. The results were as follows: >> >> 3.6.17, >> _sqlite3_exec calls _malloc 1,101 times >> _sqlite3_step calls _malloc 1,812 times >> >> 3.7.9 >> _sqlite3_exec calls _malloc 65,227 times >> _sqlite3_step calls _malloc 47,109 times >> >> At this point I've exhausted my avenues of research. Does anyone have any >> further ideas as to what may be going on which could cause this increase >> in >> memory management activity? Or any suggestions of where to look next? >> >> >> > Is there a CREATE INDEX statement in your program? There was a change > a few versions back that caused CREATE INDEX to make a lot more calls > to malloc. > > If you build SQLite with SQLITE_OMIT_MERGE_SORT it bypasses the new > code and builds indexes the old way - with fewer mallocs. There are many CREATE INDEX statements which are all run at the beginning when the database is initially created. I can run a test with your suggestion early next week. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users