À propos de l'inefficacité du transfert de données dans luigi on-memory

Dans le commentaire de Réglage des paramètres avec luigi, j'ai reçu l'information que "le transfert en mémoire semble être possible avec luigi.mock", et je l'ai fait. L'histoire que j'ai essayée. Eh bien, d'après le nom simulé, il semble que les E / S de fichiers soient effectuées en mémoire d'une manière pseudo, et je pense que ce ne sera pas aussi efficace. J'étais là.

Code de transfert de données en mémoire

Le code utilisé cette fois est le suivant. https://github.com/keisuke-yanagisawa/study/blob/20151208/luigi/mock_test.py Utilisez python mock_test.py main --use mock pour vérifier la version d'utilisation fictive. Vous pouvez exécuter la version sans maquette avec `` python mock_test.py main ''.

Comme vous pouvez le voir, c'est un code qui crée un csv avec 10 000 000 "1", séparés par des virgules, le lit et compte le nombre de caractères, et la sortie finale est 19999999. J'ai un peu de temps pour créer un tableau, mais c'est presque comme ça, donc c'est un esprit. En fait, cela a fait une différence dans les mesures de temps suivantes.

Résultat de la mesure du temps

Je vais vous montrer le résultat rapidement. Cette fois, j'ai utilisé la commande time pour mesurer le temps trois fois.

luigi.LocalTarget luigi.mock.MockTarget
Première fois 10.952 sec. 29.879 sec.
Deuxième fois 7.829 sec. 30.883 sec.
Troisième fois 11.137 sec. 27.766 sec.

Oui, je n'ai aucune objection. Même avec une simulation, je ne m'attendais pas à ce que ce soit aussi lent. Comme expliqué par la famille principale, cela ressemble à un mécanisme de test.

Alors, écrivons un fichier martelé pour un usage quotidien.

Recommended Posts

À propos de l'inefficacité du transfert de données dans luigi on-memory
À propos des composants de Luigi
L'histoire de la lecture des données HSPICE en Python
[Note] À propos du rôle du trait de soulignement "_" en Python
À propos des tests dans la mise en œuvre de modèles d'apprentissage automatique
Ne pas être conscient du contenu des données en python
À propos de l'ordre épuré dans l'ordre d'importation flake8
Utilisons les données ouvertes de "Mamebus" en Python
Un mémorandum sur la mise en œuvre des recommandations en Python
À propos des fonctionnalités de Python
À propos de la gestion des données d'Anvil-App-Server
Essayez de gratter les données COVID-19 Tokyo avec Python
[Homologie] Comptez le nombre de trous dans les données avec Python
L'histoire de la participation à AtCoder
À propos de Boxplot et Violinplot qui visualisent la variation des données indépendantes
À propos de la valeur de retour de pthread_mutex_init ()
Organiser des blogs utiles dans le domaine de la science des données (outre-mer et Japon)
À propos de la valeur de retour de l'histogramme.
À propos du type de base de Go
L'histoire du "trou" dans le fichier
À propos de la limite supérieure de threads-max
Vérifiez le résumé des données dans CASTable
À propos de l'option moyenne de sklearn.metrics.f1_score
À propos du comportement de yield_per de SqlAlchemy
À propos de la taille des points dans matplotlib
À propos de la liste de base des bases de Python
Rechercher le nom et les données d'une variable libre dans un objet fonction
Obtenez la clé pour la migration de la deuxième couche de données JSON avec python
Expliquer le mécanisme de la classe de données PEP557
[Comprendre en 3 minutes] Le début de Linux
Vérifiez le comportement du destroyer en Python
L'histoire d'une erreur dans PyOCR
Implémenter une partie du processus en C ++
Obtenez la liste des colonnes et la liste des données de CASTable
A propos du comportement de enable_backprop de Chainer v2
À propos de l'environnement virtuel de Python version 3.7
Le résultat de l'installation de python sur Anaconda
J'ai essayé de sauvegarder les données récupérées au format CSV!
A propos des arguments de la fonction setup de PyCaret
Principes de base pour exécuter NoxPlayer en Python
Séparation de la conception et des données dans matplotlib
À propos de l'équation normale de la régression linéaire
Conversion des données de temps en notation 25 heures
À la recherche du FizzBuzz le plus rapide en Python
Visualisez les données d'exportation du journal Piyo
Parlez des fonctionnalités dont les pandas et moi étions en charge dans le projet
Trouvez l'index des éléments qui correspondent aux conditions dans la trame / série de données pandas
Essayez d'afficher les données ferroviaires des informations numériques des terres nationales en 3D
Sortie du nombre de cœurs de processeur en Python
Signification de {numéro de version} dans le package mysql rpm
[Python] Trier la liste de pathlib.Path dans l'ordre naturel
À propos de la précision de la méthode de calcul du rapport de circonférence d'Archimède
À propos du comportement de copy, deepcopy et numpy.copy
À propos de la notation de l'axe X du graphique à barres de Matplotlib
Changer la taille de police de la légende dans df.plot