[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] Overload set() with a numeric value.

On Wed, Nov 21, 2012 at 9:10 PM, Jussi Kalliokoski <jussi.kalliokoski@gmail.com> wrote:
As you can see, there's a several orders of magnitude difference, but it comes with the additional memory overhead. This is attainable with a simple overload operation. Performance matters.

Oops, s/This/However, there's a great performance gain/


- Andre

On Wed, Nov 21, 2012 at 6:50 AM, Jussi Kalliokoski
<jussi.kalliokoski@gmail.com> wrote:
> Hi everyone,
> When you create a typed array, its values are automatically initialized to
> zero. However, there seems to be no good way to do this after the array is
> created and modified.
> Options are:
>  * Iterate through the array, setting the values as you go. Unnecessarily
> CPU-intensive.
>  * use .set() with a new Typed Array instance, e.g.
>     var arr = new Float32Array(20)
>     // do something with the array
>     arr.set(new Float32Array(arr.length))
>  but this comes with a memory allocation overhead and possibly GC as well.
>  * Keep a reference to an array full of zeroes, and use .set() with this.
> This doesn't suffer from the earlier problems, but significantly reduces the
> code readability and might require a lot of memory, especially if you're
> reusing the array for multiple targets for best performance gain.
> I suggest adding an overload to TypedArray#set(), taking a number to which
> all of the array is set to.
> Thoughts?
> Cheers,
> Jussi