Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #45225
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Forth dictionary implementation and performance |
| Date | 2016-02-01 06:17 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <2016Feb1.071752@mips.complang.tuwien.ac.at> (permalink) |
| References | <2016Jan29.184253@mips.complang.tuwien.ac.at> <87fuxfrfk4.fsf@jester.gateway.pace.com> <2016Jan30.145924@mips.complang.tuwien.ac.at> <2016Jan30.183857@mips.complang.tuwien.ac.at> <87y4b5plac.fsf@jester.gateway.pace.com> |
Paul Rubin <no.email@nospam.invalid> writes:
>anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
>>>gcc-4.7.2 does something more efficient for the memcmp than the rep
>>>[cmpsb] that gcc 4.4.5 uses on the reference machine.
>
>Wow, I'm surprised gcc as recently as 4.4.5 used rep cmpsb since I think
>those rep instructions have been considered slow holdovers from the 8086
>era for quite a long time.
gcc 4.9.2 compiles memset(...,0,64) into REP STOSQ, which is much
slower than 8 mov instructions.
>> (apparently there is also a difference in the dynamically linked
>> libraries between these systems that results in the difference of
>> executed instructions).
>
>I tried compiling with --whole-program and got just a tiny speedup.
I did not mean the overhead of the dynamic call, but that the called
function does different things on, e.g. libc-2.19 (on the Haswell box)
and libc-2.11.3 (on the reference machine).
>I have to ask, historically, did Forth in the minicomputer era really
>use this linked list representation? With a 1000 word vocabulary and
>maybe 1 mhz memory cycle, that's a significant amount of time just doing
>those lookups in a sizeable user program (10k tokens at 0.3 msec each is
>3 seconds right there).
Yes, this was used; read the fig-Forth sources. And 10k words is
probably upwards of 100 screens, and loading that much from floppy
disk takes more then 3 seconds, in particular since you would have to
change the disk if it holds only 85KB as the early ones did. Even
earlier paper tape was used IIRC, and that was even slower.
>I guess the representation lets FORGET work
>where hashing didn't, but did it matter? I also remember something
>about using multiple lists, then called "threads".
Hashing with external chaining works fine with FORGET. And yes, it
does matter if you have only a few KB, so you cannot just load the
changed code on top of the old one, and reloading the whole thing
takes much longer than FORGETing and loading the code starting from
the changed screen. I have not used FORGET or MARKER except for
testing purposes since the 1990s, but there are still a lot of people
who use FORGET, resulting in it being not destandardized in
Forth-2012.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2015: http://www.rigwit.co.uk/EuroForth2015/
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-29 17:42 +0000
Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-29 16:20 -0800
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 13:54 +0000
Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-31 11:57 -0800
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-02-01 06:47 +0000
Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-02-01 00:47 -0800
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-02-01 11:13 +0000
Re: Forth dictionary implementation and performance Bernd Paysan <bernd.paysan@gmx.de> - 2016-01-30 01:57 +0100
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 17:18 +0000
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 17:51 +0000
Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-29 18:01 -0800
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 13:59 +0000
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-01-30 17:38 +0000
Re: Forth dictionary implementation and performance Paul Rubin <no.email@nospam.invalid> - 2016-01-31 12:05 -0800
Re: Forth dictionary implementation and performance Albert van der Horst <albert@spenarnc.xs4all.nl> - 2016-02-01 03:01 +0000
Re: Forth dictionary implementation and performance anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-02-01 06:17 +0000
Re: Forth dictionary implementation and performance "Elizabeth D. Rather" <erather@forth.com> - 2016-01-31 21:27 -1000
Re: Forth dictionary implementation and performance hughaguilar96@gmail.com - 2016-01-30 15:42 -0800
csiph-web