Si l'utilisation de la mémoire est votre principale préoccupation, alors beaucoup de petites fonctionnalités (faible nombre de sommets) seront probablement plus à votre goût que quelques très grandes (nombre élevé de vertex). Mais vous constaterez peut-être que «trop de fonctionnalités» peuvent éventuellement dépasser même «trop de sommets» pour la vitesse de traitement.
Si vous réfléchissez à la façon dont les algorithmes doivent être structurés pour traiter toutes les entités par rapport à toutes les entités entre deux classes d'entités, vous travaillez avec des boucles imbriquées à plusieurs reprises (pour les entités dans FC1 et FC2, et pour les sommets dans Feature1 et Feature2). Dans des opérations comme le dessin, le nombre de demandes de dessin est souvent plus préoccupant que les sommets de chaque demande, mais avec des opérations thème par thème, les algorithmes clés sont susceptibles d'être basés sur le nombre de sommets dans chaque paire F1 / F2. , avec une " grande notation O " de "O (N * M)" (le temps nécessaire pour terminer l'opération est lié au facteur du nombre de sommets impliqués), qui, pour les grandes entités des deux jeux de données, est assez proche de O (N ^ 2) pour vous faire craindre que le travail ne soit jamais terminé.
J'ai réussi à superposer des fonctionnalités massives (comme la Russie, le Canada, les États-Unis, l'Australie, le Brésil, la Norvège) avec une grille à 5 degrés (résille) pour réduire la complexité des fonctionnalités pour le traitement intermédiaire. J'ai vu des opérations de point dans un polygone sur une couche COUNTRIES 1: 15m limitée aux sommets s'exécuter 100 à 1000 fois plus rapidement que la table d'origine (avec seulement une augmentation du nombre d'entités de 20x). Cependant, vous devez être prudent dans votre logique de traitement pour gérer correctement les relations un-à-plusieurs et plusieurs-à-plusieurs, en particulier dans les cas où une fausse limite existe.
Il y a aussi un aspect "rendements décroissants" dans les économies de travail avec des fonctionnalités plus petites - je me suis installé sur une grille à 5 degrés en testant les performances de l'intersection avec 90, 45, 30, 20, 15, 10, 5, 3, 2 et Grilles à 1 degré, qui ont montré une augmentation alarmante du temps de traitement lorsque le nombre de fonctionnalités totales a augmenté.
Il y a des moments où moins de fonctionnalités avec plus de sommets sont plus efficaces, il vaut donc probablement la peine de faire des tests sur l'ordre de fonctionnement avec des données réelles (sous-ensembles de tests non simplifiés) avant de s'engager dans une approche par rapport à l'autre (équilibrer l'utilisation de la RAM avec Durée).
REMARQUE: J'ai relancé l'exercice de maillage avec du matériel moderne et obtenu des performances optimales avec une superposition de 30 degrés, ce qui augmente le risque de fonctionnalités trop petites et augmente l'importance de l'évaluation avec les données de production.