Mon entreprise a été l'exécution d'un grand projet sur Delphi depuis plus d'une décennie. Notre base de code a été croissant au cours des années et se situe aujourd'hui autour de 4 millions de lignes de code. Vitesse de Compilation est en train de devenir un problème. Nous avons passé du temps à extirper de l'unité de la circulaire référencement (une cause connue de la lenteur de la compilation) et a examiné tous les aspects de l'installation. Il arrive à un moment on ne peut pas l'améliorer tout autre matériel, avec ce que nous pouvons contrôler.
Pour l'instant, sur un état de l'art PC avec 4 cœurs de l'exécution de Windows XP SP3 et Delphi 2006, début Delphi frais et faire une version complète, il faut ~40 secondes. Alors, si nous faisons une autre construction complète de la même Delphi session immédiatement, il faudra 1m 40. Faire un autre plein de construire à nouveau, elle va empirer. Ainsi de suite et ainsi de suite.
(Nous sommes bien conscients de Windows lui-même met en cache des fichiers et cela a un grand impact sur la vitesse de compilation. Les chiffres ci-dessus sont basées sur des que les fichiers sont mis en cache. Nous avons mis en place un tel scénario en obtenant Delphi pour compiler le projet une fois, fin et puis commencer une nouvelle Delphi session. Ainsi, alors que 40 secondes ne voit pas d'être lent, c'est uniquement parce que les fichiers sont mis en cache par Windows. Et nous faisons cela afin d'avoir une pomme à la pomme de comparaison.)
Ce puzzles nous est pourquoi la vitesse de compilation est pas le pire. (Nous avons observé dans le passé, le ralentissement a été pire si le projet avait beaucoup d'unité circulaire référencement.) Si nous mettons fin à Delphes et à démarrer une nouvelle session, le temps de compilation de revenir à 40 secondes. Encore plus intéressant que nous venons d'observer, nous pouvons atteindre la même vitesse "amélioration" en cliquant sur le bouton "Annuler" pour annuler la compilation et ensuite faire le plein de construire tout de suite. Le temps de Compilation de revenir à 40secs trop.
Il nous semble Delphi propre cache de l'unité de la dépendance n'est pas aussi efficace que de les construire à partir de zéro, et elle s'aggrave au fil du temps. Et il apparaît également le bouton Annuler en quelque sorte efface ce cache. Ce que nous pensons que si nous pouvons puiser dans le Delphi IDE sous-système qui n'cette compensation, on peut toujours conserver la vitesse de compilation à ses performances de pointe. Mais nous ne savons pas comment.
Personne ne sait ce que nous pouvons faire?
Nous sommes toujours à l'aide de Delphi 2006 que nous n'avons pas encore trouvé un moyen de port de notre grand projet de l'Unicode. J'ai lu sur des forums que la dernière Delphi XE présente les mêmes vitesse de compilation problème avec l'unité de la circulaire référencement. Quelqu'un sait si Delphi XE a abordé le problème?
p.s. Nous sommes également conscients que la subdivision du projet en packages d'exécution peut réduire le temps de compilation. Mais pour le déploiement et des raisons administratives, nous essayons d'éviter d'utiliser des packages d'exécution.