2016-02-02 2 views
1

Je construis une application où je dois constamment faire des requêtes qui renvoient des ensembles de données uniques pouvant aller de 5 000 à 50 000 éléments CSV. Il semble plutôt inefficace de garder toutes ces requêtes en mémoire. Les ensembles de données sont utilisés pour la visualisation des données. Quelqu'un at-il des suggestions sur la façon d'aborder cela? Ou devrais-je juste abandonner redux/immutable.js?Comment les structures de données redux et immuables gèrent-elles les grands ensembles de données?

+0

Êtes-vous réellement à court de RAM, ou est-ce une solution à la recherche d'un problème? – dandavis

+0

Je ne l'ai pas mis en œuvre, mais je veux juste obtenir quelques opinions avant d'aller de l'avant et de le faire. L'idée initiale n'incluait pas de tels ensembles de données, j'ai donc décidé d'aller de l'avant et j'ai décidé d'aller avec cette pile frontale. – user3791980

+0

Eh bien, je suis tout à fait pour abandonner des cadres inutiles, mais je ne vois pas comment cela s'applique à la stratégie globale de chargement et de purge de votre application, ce qui sera le cas, peu importe ce que vous utilisez .. – dandavis

Répondre

1

J'ai testé immuable avec un grand fichier JSON (22mb) et vous avez raison, il était très inefficace. Le point de douleur particulier était Internet Explorer; réduire et filtrer cet ensemble de données a pris presque 30s. Je ne considère pas cela comme une faute d'Immutable.js cependant, son but n'est pas de traiter 250 000 éléments de JSON en une seule explosion de données nucléaires (ce que je testais dans ce cas, pour trouver les limites des limites de calcul des navigateurs) en ce qui concerne le filtrage en particulier). Mais il est important de noter que ce n'est pas une bibliothèque conçue principalement pour la vitesse.

Les objets natifs ont toutefois ramené cette durée au maximum à 6s sur IE12 (ironique que 11 était plus rapide, mais c'est leur tour). Mais la moyenne était entre 1-2s. Donc, en bref, je n'utiliserais pas immuable pour de grands ensembles de données, j'utiliserais des objets natifs et j'utiliserais peut-être Immutable pour un sous-ensemble de ce grand ensemble de données si vous avez une raison de conception particulière.