brownhci/WebGazer

Consider different Multidimensional Arrays Implementations

Open

#37 aperta il 12 giu 2016

Vedi su GitHub
 (4 commenti) (0 reazioni) (0 assegnatari)HTML (520 fork)batch import
Performancehelp wanted

Metriche repository

Star
 (3412 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

So after looking through the optimizations of this library, we are more or less at a local minimum when it comes to our naive representation of multidimensional arrays. They are currently untyped and simply use the classic Array of Array implementation. We should consider ways of storing our arrays in alternative ways and possibly typing them to get better performance. There is a case to be made that we might want to implement something similar to NDArray, but doing so it contingent on issue #35 . LU decomposition still takes up a rather large portion of the run time.

Currently here are three areas of optimization to focus on:

  1. track() inside of CLMR tracker
  2. getPupilFeatures()
  3. LUDecomposition() and the entire ridge methods

Optimizing these areas will be important if we want to make it practical to run on mobile.

Some reading on the topic: https://0fps.net/2013/05/22/implementing-multidimensional-arrays-in-javascript/ https://github.com/mikolalysenko/ndarray-experiments

Guida contributor