From: Ian Lance Taylor <ian@zembu.com>
To: Daniel Berlin <dan@cgsoftware.com>
Cc: jhaller@lucent.com, jtc@redback.com, cgf@redhat.com,
gdb@sources.redhat.com, binutils@sources.redhat.com
Subject: Re: stabs vs. dwarf-2 for C programs
Date: Fri, 13 Apr 2001 23:40:00 -0000 [thread overview]
Message-ID: <sihezsrnkd.fsf@daffy.airs.com> (raw)
In-Reply-To: <m2puegqb1q.fsf@dynamic-addr-83-177.resnet.rochester.edu>
Daniel Berlin <dan@cgsoftware.com> writes:
> Oh, and i know about the BFD_IN_MEMORY stuff, it just doesn't seem to
> work well compared to just mmapping the same files. Probably because
> mmap is a lot more optimized than just reading the whole file into
> memory at once.
BFD_IN_MEMORY was a wretched hack I threw in there to support OSF/1
3.2 archive files, in which the native ar program would compress
object files stored in archives (as I recall, I disassembled the
native ar program to work out the compression scheme). Using
BFD_IN_MEMORY was simpler than using a temporary file and much simpler
than decompressing on demand.
Since then DJ has beefed up BFD_IN_MEMORY to work for some other
cases. But in any case it was never intended to be a poor man's
mmap.
> For instance, linking gdb, which is one archive, 8 objects, requires
> 5000 out of memory seeks (ie fseeks), 7532 out of memory reads of
> random sizes, at random offsets, and 28000 out of memory writes.
>
> Of course, linking gdb is barely disk i/o bound, the numbers get much worse
> worse with large programs.
> The worst part about the reads is we do tons of small reads (almost
> all of the reads are 40 bytes or less), 80% being followed (IE we do 8
> 40 byte reads, and a seek) by tons of seeks to positions probably just
> outside the buffering range, and then reads.
I'm surprised that the reads are so small. I would have thought that
most of the reads when linking ELF are for complete ELF sections, and
I wouldn't expect most ELF sections to be 40 bytes or less.
I wonder if this is in part caused by the overall trend to more,
smaller, sections? The linker is written to handle one section at a
time, which would cause worse behaviour if there are many small
sections.
Ian
next prev parent reply other threads:[~2001-04-13 23:40 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-12 19:13 J.T. Conklin
2001-04-12 19:17 ` Christopher Faylor
2001-04-12 19:31 ` J.T. Conklin
2001-04-12 19:59 ` Daniel Berlin
2001-04-13 7:13 ` John Haller
2001-04-13 8:09 ` Daniel Berlin
2001-04-13 16:18 ` Ian Lance Taylor
2001-04-13 18:39 ` Daniel Berlin
2001-04-13 20:22 ` Ian Lance Taylor
2001-04-13 22:01 ` Daniel Berlin
2001-04-13 22:19 ` Ian Lance Taylor
2001-04-13 22:37 ` DJ Delorie
2001-04-13 23:31 ` Daniel Berlin
2001-04-13 23:47 ` Daniel Berlin
2001-04-13 23:51 ` Ian Lance Taylor
2001-04-13 22:56 ` Daniel Berlin
2001-04-13 23:40 ` Ian Lance Taylor [this message]
2001-04-13 23:55 ` Todd Whitesel
2001-04-12 19:55 ` Daniel Berlin
2001-04-12 23:37 ` Eli Zaretskii
2001-04-13 8:13 ` Daniel Berlin
2001-04-12 22:00 ` Geoff Keating
2001-04-12 22:37 ` Daniel Berlin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sihezsrnkd.fsf@daffy.airs.com \
--to=ian@zembu.com \
--cc=binutils@sources.redhat.com \
--cc=cgf@redhat.com \
--cc=dan@cgsoftware.com \
--cc=gdb@sources.redhat.com \
--cc=jhaller@lucent.com \
--cc=jtc@redback.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox