Initialisation d'un énorme tableau (50000 inputs)

Je initialise un énorme set de 49605 key=>value paires de key=>value ) (le tableau ne sera jamais changé à nouveau) $ boardkey_to_values ​​= Array (97031 => 0,97531 => 1,409531 => 2,410031 => 3,410131 => 4,472031 => 5,472531 => 6,472631 => 7,472651 => 7,484531 => 8,485031 => 9,485151 => 10,485131 => 10, …)

Cela prend beaucoup de time pour le compilateur (40ms en moyenne)

Je me demandais s'ils pouvaient être une solution plus rapide.

J'utilise un grand sous-set des keys dans mon programme (15-35k). J'ai utilisé MySQL avant avec where_in, mais c'était encore plus lent (6s en moyenne), on m'a donné des conseils pour le coder, et en effet, c'est beaucoup plus rapide, mais je voulais l'optimiser encore plus. Voir la publication originale Ssortingng to Value compare Optimiser la requête MySQL

40 ms n'est pas terriblement lent pour une large gamme. Mais si c'est sur le Web et que plusieurs personnes appellent la page PHP, cela peut ralentir le server. Vous avez plusieurs options:

  • Utilisez plusieurs appels Ajax, pour remplir votre tableau, une fois que la page a été rendue, c'est-à-dire des sets de 10000 toutes les quelques secondes (de cette façon, vous pouvez faire d'autres choses sur la page et laisser le tableau remplir à son propre time)

  • Utilisez une database, car il sera plus rapide de searchr / mettre à jour au lieu de la stocker dans une masortingce.

  • Changez la logique du programme pour ne fonctionner que quelques valeurs à la fois, au lieu de 49K d'entre elles. (sorte de pagination, où seul un sous-set de données est affiché par page)