Re: On the cost of libraries
- From: Sander Vesik <Sander Vesik Sun COM>
- To: Ulrich Drepper <drepper redhat com>
- Cc: Drazen Kacar <dave arsdigita com>, gnome-hackers gnome org
- Subject: Re: On the cost of libraries
- Date: Sun, 2 Sep 2001 23:11:44 +0100 (BST)
On 2 Sep 2001, Ulrich Drepper wrote:
> - ordering the DSO content will get important. We are working on tools
> to make this easier to do but again here the code design is essential.
> The reordering can happen at best on ELF section level, maybe only
> at object file level. I.e., code which use large source files which
> define many functions will not be able to take advantage of this. One
> might use gcc's -ffunction-sections option but this is no real substitute
> for a clean design since handling of static functions is left up to the
> tool doing the reorganization.
>
reordering functions is definately possible, except to do it you first
need data based on which to do the re-ordering. I'm not entirely sure how
to get a representative dataset for many of the present libararies. One
way or the other, it would be a large excercise and probably not worth the
time spent (comparatively speaking - bugfixing is way more important that
dabbling in esoteric minor perfomance improving magic).
> - made easy by the first point above: explicitly use dlopen() to load
> DSO. This is lazy loading implemented correctly. The application
> controls when another DSO is needed. By using callbacks the amount
> of work needed to use the newly loaded DSO is minimal: just call the
> function to get the callbacks. Note how easy it is to just fill in
> the callback structure with pointers to functions which load the DSO
> if necessary.
Yes, this works very well for all kinds of plugins and similar, but not
really for platform libraries.
>
> --
> ---------------. ,-. 1325 Chesapeake Terrace
> Ulrich Drepper \ ,-------------------' \ Sunnyvale, CA 94089 USA
> Red Hat `--' drepper at redhat.com `------------------------
>
Sander
I haven't been vampired. You've been Weatherwaxed.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]