5 Habits to Reduce Program Execution Time During the Development Phase
The execution time of programs can have a significant impact on how quickly we develop them.
When the volume of data to be processed is large, this phenomenon becomes even more inevitable.
In this post, I offer five tips that can help you reduce execution time.
These points are based on my experience with three different types of files multiplied several hundred times (a package of three files per show).
- Create a first version of your program using only one of the files to be imported. Add new files and adapt your program to take into account its specificities. Example: having a show with a meal beforehand.
- The first step in the program is usually to import the files and append them without any special processing. This requires often high running time. Once your code is stable, create a permanent version of the final table and disable the associated code (comment it out). This permanent version will serve as the basis for the next sections of the program.
- When the table created (output) in a step has the same name as the original table (input), the changes implemented may make it impossible to execute the code a second time without also re-executing the previous steps that created the original table. As long as the code is not stable, it is advisable to change the name of the output table. Table xx temporarily becomes table xx2. Once the code is stable, we can focus on the next step of the code.
- Once you are working with all the data (or a large database), it is useful to apply a filter (where) to the input data to solve one problem at a time. It reduces the execution time but not only. It makes the output control reports much easier to review. Example: run the program on the data for a particular show.
- Be careful not to put everything in a single program. Does your program create a “standard” table that is used for the rest of your program? Couldn’t the code used to create this table be put in a side program and create this table permanently? With this solution, the side program is much shorter and has a single purpose: to create the permanent “standard” table. This program does not need to be run every time you work on your large database. Example: the history of ticket prices by category (loge, parquet, etc.) and venue.
5 habitudes pour réduire le temps d'exécution de ses programmes pendant sa phase de développement
Le temps d’exécution des programmes peut impacter fortement votre rapidité de développement de nos programmes.
Plus le volume des données à- traiter est important, plus le phénomème devient inévitable.
Dans cette publication, je vous propose cinq rappels qui peuvent vous aider à réduire ce temps d’exécution.
Ces différents points sont basés sur mon expérience avec trois fichiers de type différents multipliés plusieurs centaines de fois (un package de trois fichiers par spectacle).
- Créez une première version de votre programme en utilisant un seul des fichiers à importer. Ajoutez de nouveaux fichiers et adaptez votre programme pour qu’il prennent en compte ces spécificités. Exemple : avoir un spectacle avec repas au préalable.
- La première étape du programme consiste à importer les fichiers et à les joindre (append) sans traitement particulier. Cela nécessite souvent un temps d’exécution élevé. Une fois votre code stable, créez une version permanente de la table finale et désactivez le code associé (mettre en commentaire). Cette version permanente servira de base pour les prochaines étapes du programme.
- Lorsque la table créée (en sortie) lors d’une étape porte le même nom que la table d’origine (en entrée), alors les changements implémentés peuvent rendent impossible l’exécution du code une seconde fois, sans que le code préalable créant la table d’origine ne soit aussi réexécuté. Tant que le code n’est pas stable, il est conseillé de changer le nom de la table en sortie. La table xx devient temporairement la table xx2. Une fois le code stable, on peut se focaliser sur l’étape d’après du code.
- Une fois qu’on travaille avec toutes les données (ou une large base de données), il est utilise d’appliquer un filtre (where) sur les données en entrée pour résoudre un problème à la fois. En plus de réduire le temps d’exécution, cela rend les rapports de contrôle en sortie beaucoup plus facile à interpréter. Exemple : exécuter le programmes sur les données d’un spectacle en particulier.
- Attention à ne pas tout mettre dans un seul programme. Votre programme crée-t-il une table “standard” qui sert pour la suite de votre programme ? Le code servant à créer cette table, ne pourrait-il pas être mis dans un programme annexe et créer de manière permanente cette table ? Avec cette solution, ce programme annexe est beaucoup plus court avec un objectif simple : créer la table “standard” permanente. C’est un programme qui n’a pas besoin d’être exécuté à chaque fois que vous travaillez sur votre base volumineuse de données. Exemple : l’historique des prix appliqués selon la catégorie (Loge, Parquet…) et le lieu du spectacle.