Closed Bug 575667 Opened 14 years ago Closed 14 years ago

split about:memory reporting into more detailed sections

Categories

(Toolkit :: Storage, defect)

x86
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla2.0b3

People

(Reporter: shaver, Assigned: sdwilsh)

Details

Attachments

(1 file)

Probably want one item per database for cache, one per database/connection for prepared statements, similarly for in-memory tables.
In order to do this, we'll need some new APIs (or an expansion of existing APIs) from SQLite.  What I think we'd need:
1) Given a sqlite3*, how much memory is used for the page cache
2) Given a sqlite3*, how much memory is used for currently compiled statements

This might go best on sqlite3_db_status.
Will that cover in-memory tables, like the ones that are currently used for places temp tables?
(In reply to comment #2)
> Will that cover in-memory tables, like the ones that are currently used for
> places temp tables?
I would think so, but that's something we can make sure gets covered too.
From drh:
You can get some extra global memory usage information
from sqlite3_status().  Specifically, if you look at the return from
sqlite3_status(SQLITE_STATUS_PAGECACHE_OVERFLOW,...) then (assuming that you
have *not* configured a separate chunk of memory designated specifically for
page cache, which presumably you have not) all page cache memory allocations
will be overflow allocations and so the result will show the current and the
peak amount of memory SQLite is using for page cache across all database
connections.  If you then subtract that amount from the total memory used,
you will get a reasonable estimate of the total memory used for compiled
statements.  Well, compiled statements + parsed schema storage + whatever
memory is being used but currently running queries.  That' isn't perfect,
but you could at least split the current about:memory line for sqlite into
two lines - one for sqlite.pagecache and another for sqlite.other.  I think
that would be a useful addition to about:memory and it doesn't require any
SQLite changes.


So, going to do that here, and when we get the new API, I'll open up a new bug.
Assignee: nobody → sdwilsh
Status: NEW → ASSIGNED
Attached patch v1.0Splinter Review
Threw this together while I was waiting for my plane yesterday.
Attachment #458994 - Flags: review?(vladimir)
http://hg.mozilla.org/mozilla-central/rev/c4720f6b9be4
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0b3
You need to log in before you can comment on or make changes to this bug.