Commit 42eade4f authored by Lionel DURAND's avatar Lionel DURAND
Browse files

Mesure dure de chaque etape

parent 2b200897
......@@ -36,6 +36,18 @@ from crater.territoires.calculateur_donnees_territoires import calculer_donnees_
from crater.territoires.calculateur_referentiel_territoires import charger_referentiel_territoires, \
calculer_referentiel_territoires
duree_etapes = []
def stocker_duree_etape(nom_etape, duree_etape):
duree_etapes.append({'nom_etape': nom_etape, 'duree': duree_etape})
def loguer_duree_etapes():
for e in duree_etapes:
duree_etape = str(round(e['duree'] / 60, 2)) + " min"
log.info("Temps d'éxecution traitement " + e['nom_etape'] + " = " + duree_etape)
def lancer_calcul_surface_agricole_utile(nombre_traitements_paralleles: int):
referentiel_territoires = charger_referentiel_territoires(
......@@ -59,22 +71,27 @@ def lancer_calcul_surface_agricole_utile(nombre_traitements_paralleles: int):
)
def lancer_etape_crater(etape: Callable):
debut = time.time()
log.info(f"#### DEBUT DE L'ETAPE {etape.__name__} ####")
etape()
log.info(f"#### FIN DE L'ETAPE {etape.__name__} ####")
return {'nom_etape': etape.__name__, 'duree': (time.time() - debut)}
def lancer_calcul_complet_traitement_crater(nombre_traitements_paralleles: int):
lancer_calcul_territoires()
etapes_parallelisables = [lancer_calcul_population_agricole, lancer_calcul_politique_fonciere, lancer_calcul_pratiques_agricoles, lancer_calcul_production_besoins]
duree_etapes_pool = []
with Pool(processes=nombre_traitements_paralleles) as pool:
pool.map(lancer_etape_crater, etapes_parallelisables)
duree_etapes_pool = pool.map(lancer_etape_crater, etapes_parallelisables)
duree_etapes.extend(duree_etapes_pool)
lancer_calcul_cartes()
def lancer_calcul_territoires():
debut = time.time()
calculer_referentiel_territoires(
CHEMIN_SOURCE_COMMUNES_ET_ARRONDISSEMENTS,
CHEMIN_SOURCE_MOUVEMENTS_COMMUNES,
......@@ -97,6 +114,10 @@ def lancer_calcul_territoires():
CHEMIN_OUTPUT_DATA / DOSSIER_TERRITOIRES
)
stocker_duree_etape('CALCUL_REFERENTIEL_TERRITOIRES',time.time() - debut )
def lancer_calcul_population_agricole():
referentiel_territoires = charger_referentiel_et_donnees_territoires(
......@@ -165,6 +186,8 @@ def lancer_calcul_production_besoins():
def lancer_calcul_cartes():
debut = time.time()
reinitialiser_dossier(CHEMIN_OUTPUT_DATA / 'crater_geojson')
calculer_cartes(
CHEMIN_CRATER_DATA_SOURCES / 'france_geojson' / 'regions.geojson',
......@@ -176,10 +199,13 @@ def lancer_calcul_cartes():
CHEMIN_OUTPUT_DATA / DOSSIER_POLITIQUE_FONCIERE / 'synthese.csv',
CHEMIN_OUTPUT_DATA / 'crater_geojson'
)
stocker_duree_etape('CALCUL_DONEES_CARTES',time.time() - debut )
if __name__ == '__main__':
startTime = time.time()
debut = time.time()
parser = argparse.ArgumentParser()
parser = argparse.ArgumentParser(usage='%(prog)s [OPTIONS] ETAPE_CALCUL\n'
+ 'Permet de lancer une étape ou un groupe d\'étapes de traitements de crater-data\n'
......@@ -284,5 +310,5 @@ if __name__ == '__main__':
else:
parser.print_help()
log.info("Temps d'éxecution total = " + str(round((time.time() - startTime)/60, 1)) + " min")
stocker_duree_etape('TRAITEMENT_TOTAL', time.time() - debut)
loguer_duree_etapes()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment