Le vendredi 15 février 2008 à 01:21 +0100, Carlos Garnacho a écrit : > Hi!,
Hi! > On Thu, 2008-02-14 at 17:31 +0100, Laurent Aguerreche wrote: > > Le mercredi 13 février 2008 à 18:09 +0100, Carlos Garnacho a écrit : > > > Hi!, > > > > > > This was just a heads up to these three bugs: > > > > > > #513692 : This one just packs booleans in guints, so it should improve > > > size in most used structs. > > > > Is it so interesting to save some bytes this way? > > > > In tracker-utils, this patch will replace 25 gbooleans with 25 "uint:1". > > If I assume that gboolean is a typedef of gint and that gint uses 4 > > bytes, this patch will save (25*4)-25 = 75 bytes (perhaps a little bit > > more but IMHO not much more because we use pointers everywhere and we > > take care of memory allocations). > > So we would prefer to write some weird things (using of unsigned int > > instead of booleans) to save ~75 bytes? > > There are several copies of such structures during all the application > lifetime, so if you save for example 16 bytes (5 gboolean = 20 bytes, 1 > guint = 4 bytes) in one structure, having say 100 of these structures > around saves you already 1600 bytes. To me it's a no brainer trying to > get used to do such effortless improvements as you code. > > > > > Another question: why glib does use a typedef of gint instead of a > > typedef of "guint:1" for its booleans? > > This is only applicable to structs and unions, and the define would have > to get like: > > #define gboolean(var) guint (var) : 1 > > quite weird for a data type. > > > > > > #513691 : a similar improvement to #511788 (already committed) in a > > > different function. > > > > + res = g_ptr_array_sized_new (100); > > > > What is "100"?! > > Perhaps should have done a #define for that :), it's just a good enough > default value, so the array has a sensible initial size, and it doesn't > need too frequent reallocations when the array grows at first. Thanks for all these explanations, I'm less stupid now! :-) Laurent. > Regards, > Carlos > >
signature.asc
Description: Ceci est une partie de message numériquement signée
_______________________________________________ tracker-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/tracker-list
