' If you have the time to resolve these remaining issues, that would be
awesome.'

Happy to commit to doing this by mid-July if that works. I do have downtime
in July that I can use for Royale, but I also need to set up for Royale
development again because I have changed machines.


On Fri, Jun 22, 2018 at 9:13 AM Harbs <harbs.li...@gmail.com> wrote:

> Cool.
>
> FYI there are still some issues to resolve:
>
> 1. readFloat and readDouble should have the same issues as the various int
> read methods. I did not fix that yet because calculating floats and doubles
> is harder than ints. I’m not sure of the best way to handle that. One way
> is to create a new temporary ArrayBuffer with only the necessary bytes and
> read that. Another would be to use DataViews for floats and doubles. A
> third would be to actually do the math for floating point numbers…
>
> 2. I did not fix any of the write methods. They should have the same issue
> as the read methods.
>
> If you have the time to resolve these remaining issues, that would be
> awesome. :-)
>
> Harbs
>
> > On Jun 21, 2018, at 11:55 PM, Greg Dove <greg.d...@gmail.com> wrote:
> >
> > Thanks Harbs - that short explanation makes it very clear.  Thanks for
> > fixing my broken implementation :). I am guilty of not covering 'real
> > world' combinations in the tests, which was what I used to guide
> > development when I was working on this originally.
> >
> > I am pretty sure I did have also have an interim implementation doing the
> > bytewise reads/writes and dealing with endian-ness branching along the
> way,
> > then I switched to using the typed arrays when I saw a performance boost.
> > I wish I had written something like your new test before I did that :).
> > I did a quick search for this and read up on the issue about the offset.
> I
> > guess that also partly explains why the typed array performance is
> 'faster'
> > (possibly due to the alignment I mean). And I did not do memory
> profiling,
> > so maybe Alex is right - there could also have been a massive GC dump
> after
> > my large loop tests, something that I was not seeing because I was only
> > focused on speed at the time.
> >
> > I had to add the 'sysEndian' flag approach internally when I switched to
> > using the typed arrays (and only reordering the result if it was
> different
> > to the 'native' endian used in the typed arrays). If everything is based
> on
> > bytewise approach now, that flag should no longer be needed I think (you
> > may already have done that, I did not look at your changes in detail yet
> -
> > will check them out this weekend).
> >
> > Obviously having this working correctly comes first, but with a
> > comprehensive set of tests, we do have the ability to more easily respond
> > to changes in the browser engines over time and update the implementation
> > if, for example, DataView becomes faster across the board. I did see it
> > working faster in one of the browsers I tested in, but I am not confident
> > that I kept a good record of all this...
> >
> > I will look in more detail this weekend, but for now it sounds like you
> > have resolved the issue - well done! I hope I can get into some more work
> > on Royale again soon.
> >
> >
> >
> > On Thu, 21 Jun 2018, 21:04 Harbs, <harbs.li...@gmail.com> wrote:
> >
> >> I just added a unit test for this.
> >>
> >> The test will fail with a RTE using the old implementation.
> >>
> >> Explanation: After reading the first byte, the position is 1 which
> doesn’t
> >> align with a 16IntArray.
> >>
> >> Thanks,
> >> Harbs
> >>
> >>> On Jun 21, 2018, at 1:48 AM, Greg Dove <greg.d...@gmail.com> wrote:
> >>>
> >>> I am not sure what the int16/int-aligned issue is yet (I have not read
> >> back
> >>> through all the relevant history) but if we can set up a unit test for
> >> it,
> >>> this stuff all becomes much clearer I think.
> >>
> >>
>
>

Reply via email to