2015-01-16 16:55 GMT+01:00 Eliot Miranda <eliot.mira...@gmail.com>:

> Hi All,
>
> On Jan 16, 2015, at 7:36 AM, Eliot Miranda <eliot.mira...@gmail.com>
> wrote:
>
> > Hi Marcel,
> >
> > On Jan 16, 2015, at 5:54 AM, Marcel Taeumel <
> marcel.taeu...@student.hpi.uni-potsdam.de> wrote:
> >
> >> Ah, okay. I was curious about the performance of iterating over an
> array vs.
> >> the linked list:
> >>
> >> a := Array new: 1000.
> >> l := LinkedList new.
> >>
> >> 1000 timesRepeat: [l add: (StackLink with: nil)].
> >>
> >> [a do: [:ea | 1 + 2]] bench. "'94,600 per second.'"
> >>
> >> [l do: [:ea | 1 + 2]] bench. "'159,000 per second.'"
> >>
> >> I expected the opposite! :-O Why is that so?
> >
> > Look at the implementations of do:.
> >
> > In the Array case we iterate over the indices using SmallIntegers (fast
> arithmetic with no allocation) and dereference each element using the
> Object>>at: primitive, which (apart from type and bounds checking) is
> simple indexed memory access. So one read per element.
> >
> > In the LinkedList case each list element is fetched from the previous
> element and each value fetched from the element, so two reads per element.
>
> This is interesting.  (Marcel, Chris, forgive me; I'm presuming; please
> don't take this personally).  Marcel above appears to lack an intuition
> about the structure of Array vs LinkedList.  And in developing a hash
> algorithm for a 32-bit subset of Floats a few weeks ago Chris appeared to
> lack an I tuition about Floats being boxed, assuming they were value types,
> not containers.
>
> As a VM implementer I carry around a clear picture (literally, I am a
> visual thinker) of objects in my head.  Those pictures are key to my
> approach to design and optimization.
>
> I presume that for someone approaching the system given only a textual
> description of object structures, through class comments and method source
> it is difficult to develop a good picture or mental model.  For me, I read
> the blue book first, which is replete with pictures.
>
> I know that historically visual inspector frameworks such as Jun have been
> able to auto-generate pictorial representations of specific object graphs.
> I wonder how useful it would be to provide support for designers to include
> pictorial representations in class comments.
>
> Again I presume that the text model would have to support inclusion of
> simple bitmaps (to avoid having to include a full drawing framework in the
> system) and that the designer would construct a sample graph, generate a
> diagram using a visual inspector framework using eg Jun, render it to a
> bitmap and include it in the class comment.
>




>
> A more elaborate system could of course include the sample graph and
> render it dynamically, that would allow exploration.
>
> Either approach would make an interesting project, yes?
>

I would prefer something conceptually simpler and worthwhile: the ability
to embed a morph as a character in the text (would do the two approaches
easily). And a bit of marshalling/text representation to make a completely
textual representation possible.

I used to have that for hypermedia (i.e. a drawing editor with text frame
objects, and text frames able to display GUI components... in ParcPlace
Smalltalk)

Now I dream a bit of having something like TiddlyWiki in Pharo ;)

Thierry

Reply via email to