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. Dan. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users