[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Tinycc-devel] Re : Minimizing libtcc memory use
From: |
david . koch |
Subject: |
[Tinycc-devel] Re : Minimizing libtcc memory use |
Date: |
Thu, 29 Feb 2024 13:44:25 +0100 (CET) |
Hi,
isn't there a garbage collecting done at the end to remove all the unused stuff
to produce a binary that contains only the necessary parts ?
Regards.
----- Mail d'origine -----
De: Eric Raible <raible@gmail.com>
À: tinycc-devel@nongnu.org
Envoyé: Thu, 29 Feb 2024 08:43:17 +0100 (CET)
Objet: [Tinycc-devel] Minimizing libtcc memory use
In my use case I typically give libtcc code a few hundred lines of code:
1) some standard includes:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
2) ~100 lines of #defines
3) ~50 lines of structs and typedefs
4) ~70 lines of function and data declarations (externs)
5) ~100 lines of actual code and data
6) The TCCState has ~50 symbols added with tcc_add_symbol().
All that is well and good, and it works perfectly. The problem is that the
above uses roughly 30K bytes of memory. But the actual code and data
looks to be between a few hundred and a few thousand bytes. So a
50x reduction looks feasible.
I can envision a new API that would flush all unnecessary info.
For instance: int tcc_finalize(TCCState *);
After such a call the only valid operation on the TCCState would be
tcc_delete().
Two questions, if I may:
1) Is something like this of interest to anyone else?
2) Can anyone estimate how difficult this is? I might be able to sponsor
development of such a feature if that would help.
Thanks - Eric