commit:2018:01_29
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2018:01_29 [2018/01/29 10:20] – crutzen | commit:2018:01_29 [2018/01/29 15:28] (current) – crutzen | ||
---|---|---|---|
Line 1: | Line 1: | ||
======= Commit 2018-01-29 ======= | ======= Commit 2018-01-29 ======= | ||
====== Initialisation concurrente d’objets statiques et améliorations de performances ====== | ====== Initialisation concurrente d’objets statiques et améliorations de performances ====== | ||
+ | |||
+ | ===== Initialisation concurrente d’objets statiques ===== | ||
+ | Outre les plantages que nous avions rencontrés en rapport avec les accès et agrandissements concurrents de la base de données (cf. mon [[commit: | ||
+ | |||
+ | Pour ces plantages, lorsque je parvenais à les reproduire avec le débogueur du Visual Studio 2012, ce dernier s’arrêtait sur l’initialisation d’un objet statique dans les méthodes '' | ||
+ | Lorsque ces plantages survenaient, | ||
+ | Or, en me renseignant sur les fonctionnalités supportées par Visual Studio, j’ai appris que l’initialisation d’objets statiques de manière concurrente n’est pas supportée par l’édition 2012 mais bien par l’édition 2015. | ||
+ | Étonnement, | ||
+ | |||
+ | Malgré que ces plantages ne soient définitivement plus reproductibles depuis notre migration de Visual Studio 2012 à Visual Studio 2015, nous avons préféré jouer la carte de la sécurité. Nous avons mis en place un patron de conception qui nous assure de ne définitivement plus rencontrer ces plantages dans le cas où nous serions amenés à compiler Metafor avec un compilateur qui ne supporterait pas la fonctionnalité d’initialisation concurrente d’objets statiques. | ||
+ | Le patron de conception que nous avons mis en place est décrit [[https:// | ||
+ | |||
+ | |||
+ | Les objets statiques concernés par ce patron de conception sont très peu sollicités dans le code. Il n’est donc pas opportun de se pencher sur les performances résultantes de cette implémentation. | ||
+ | |||
+ | ===== Amélioration des performances de l’assemblage de la matrice de raideur tangente ===== | ||
+ | L’assemblage de la matrice de raideur tangente est réalisé au moyen des méthodes '' | ||
+ | |||
+ | On peut remarquer que les deux arguments de ces méthodes sont passés par copie. Dès à présent, ces deux arguments sont passés par référence '' | ||
+ | |||
+ | Conformément à nos attentes, en réalisant un passage de ces deux arguments par référence '' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== Amélioration des performances de la convection du formalisme ALE ===== | ||
+ | Dans les algorithmes de convection du formalisme ALE, nous avons remarqué que les opérations de mises à jour du maillage volumes finis étaient réalisées consécutivement deux fois de suite. | ||
+ | |||
+ | Nous avons modifié le code afin de ne désormais réaliser ces opérations de mises à jour qu’une seule fois et ainsi d’éviter un gaspillage de ressources CPU. | ||
+ | |||
+ | ===== Modifications des timers du formalisme ALE ===== | ||
+ | * Ajout d’un timer " | ||
+ | * Ajout d’un timer “updateBuilders”. | ||
+ | * Le départ du timer " | ||
===== Fichiers ajoutés/ | ===== Fichiers ajoutés/ |
commit/2018/01_29.1517217657.txt.gz · Last modified: by crutzen