Downsampling ou comment bien optimiser le code

Description

Salut,
je dépose une source qui contient une unité très optimisée sur laquelle vous pouvez jeter un coup d'oeil et ainsi voir ce que le mot "optimisation" veut dire. Au préalable de la lecture du code je recommande la lecture de mes deux tutoriels sur Scanline et les pointeurs ainsi que la lecture du tutorial de Caribensila sur l'optimisation du code en Delphi (Tactiques d?'optimisation de la vitesse d'execution du code) si vous n'êtes pas à l'aise avec les pointeurs et l'optimisation.

Une fois ceci fait, vous pouvez considérer cette source comme un exemple "taille réelle" et si vous vous sentez d'attaque vous pouvez même tenter d'optimiser encore davantage ! Faites-m'en part si vous y parvenez, qu'on puisse mettre à jour le code.

Le code est commenté et davantage d'informations sont disponibles en commentaires au début de l'unité Downsampling.pas.

Au fait, bien que le code soit optimisé l'interface graphique du programme est assez lente, c'est dû au Trackbar qui ne notifie ses changements que tous les X secondes. Ne pas se fier à l'interface graphique, elle n'est là que pour office d'exemple et pour avoir une capture - c'est le code qui est intéressant.

Ne pas oublier que l'optimisation n'est pas simplement une question de vitesse - le code doit rester lisible et relativement simple, il n'est pas toujours nécessaire de sortir l'assembleur lourd pour aller plus vite (d'autant plus que l'assembleur est difficile à lire, même pour un initié).

Source / Exemple :


// Dans le zip

Conclusion :


Tous commentaires, critiques, remarques, etc ... sont les bienvenus.

Codé sous Delphi 6 Personal, devrait marcher sous toutes les versions supérieures à Delphi 2 normalement (pas sûr pour Delphi 2010).

Cordialement, Bacterius !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.