* src/igc.c (Figc__describe_arena): New wrapper for ArenaDescribe.
(syms_of_igc): Register it.
* lisp/emacs-lisp/igc.el (igc-describe-arena): New command.
* lisp/emacs-lisp/igc.el (igc--number-format): New variable.
(igc--format-bytes-human-readable, igc--format-bytes,
igc--format-bytes-cell, igc--format-avg-cell):
(igc--insert-info): Use them
(igc-cycle-number-format): New command.
(igc-stats-mode): Bind it to n.
This makes the exact value of igc--idle-delay less import because
igc--on-idle is now called after igc--idle-delay then after
igc--idle-delay * 2, then igc--idle-delay * 4, and so on.
* lisp/emacs-lisp/igc.el (igc--on-idle): Start a second timer until
igc--idle-repetitions is reached.
(igc--idle-delay): Use 1.0 as default.
(igc--idle-repetitions): New.
(igc--current-idle-time): New helper.
(igc--predict-idle-time): Use it.
* lisp/emacs-lisp/igc.el (igc-roots-mode): Add documentation,
essentially combining the docstrings of igc-roots-stats and igc--roots,
with minor adaptation.
(igc-roots-stats): Change message to guide user to type ? for help.
* lisp/emacs-lisp/igc.el (igc-stats-mode): Add documentation,
essentially combining the docstrings of igc-stats and igc-info,
with minor adaptation.
(igc-stats): Change message to guide user to type ? for help.
* lisp/emacs-lisp/igc.el (toplevel): Require sqlite.
(igc--sqlite): New var containing SQLite database.
(igc-stop-collecting-stats): Handle sqlite case.
(igc-stats-time-format): Change to include milliseconds.
(igc--collect-stats-csv): Renamed from igc--collection-stats.
(igc--collect-stats-sqlite):New function inserting into DB.
(igc--open-sqlite): New function.
(igc-start-collecting-stats): Allow choosing CSV or SQLite.