{ "info": { "author": "Robert Sebille", "author_email": "robert@sebille.name", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# TimeTime\n\n## R\u00e9sum\u00e9\n\nTimeTime est une classe qui permet d\u2019afficher le temps d\u2019ex\u00e9cution de fonctions, \u00e9galement de les comparer entre eux. TimTime retourne le temps d\u2019ex\u00e9cution total pour <loops> boucles (par d\u00e9faut 10000) et le temps moyen par boucle.\n\nTimeTime est simple \u00e0 utiliser. Il est bas\u00e9 sur les modules built-in time et re.\n\n## Usage\n*Les fonctions \u00e0 comparer doivent \u00eatre sans arguments.*\nIl est fortement recommand\u00e9, pour la lisibilit\u00e9 des r\u00e9sultats de l'analyse, qu'elle ne comporte pas d'impressions \u00e9cran de r\u00e9sultats de la fonction elle-m\u00eame *(si \u00e7a doit \u00eatre le cas, voyez une alternative pour \u00e9viter un \"print\" dans l'exemple)*. \n```python\nfrom timetime import TimeTime\n\ndef fonction1():\n\t...\n\ndef fonction2():\n\t...\n\nf1 = TimeTime(fonction1)\nf2 = TimeTime(fonction2)\n\nprint(f1)\nprint(f2)\nprint(f1 == f2)\netc.\n\nTimeTime.loops = 1000\nTimeTime.version()\nTimeTime.demo()\netc.\n```\n\n### Exemple\ncet exemple vous montre \u00e9galement comment contourner le cas o\u00f9 vos fonctions de test doivent envoyer des impressions. On les renvoie dans un fichier /dev/null (nul - je crois, sous windows)\n```python\nimport os\nfrom timetime import TimeTime as tt\n\ndef fonc1():\n with open(os.devnull, 'w') as f:\n f.write('b'+'c')\n\na = 'b'+'c'\ndef fonc2():\n with open(os.devnull, 'w') as f:\n f.write(a)\n\nf1 = tt(fonc1)\nf2 = tt(fonc2)\n# quelle est la fonction la plus rapide ?\nfor i in range(3):\n print(\"--- phase\", i, \"---\")\n print(f1 == f2)\n```\n### Commentaires \u00e0 propos de l'exemple\nLes r\u00e9sultats:\n```python\n--- phase 0 ---\n\nfonc1() == fonc2()\n------------------------------------------\nfonc1(), 10000 loops.\nTotal runtime = 0.2219841480255127\nMean loop = 2.219841480255127e-05\n------------------------------------------\n------------------------------------------\nfonc2(), 10000 loops.\nTotal runtime = 0.21685266494750977\nMean loop = 2.1685266494750976e-05\n------------------------------------------\n--- phase 1 ---\n\nfonc1() == fonc2()\n------------------------------------------\nfonc1(), 10000 loops.\nTotal runtime = 0.21837949752807617\nMean loop = 2.1837949752807617e-05\n------------------------------------------\n------------------------------------------\nfonc2(), 10000 loops.\nTotal runtime = 0.216231107711792\nMean loop = 2.16231107711792e-05\n------------------------------------------\n--- phase 2 ---\n\nfonc1() == fonc2()\n------------------------------------------\nfonc1(), 10000 loops.\nTotal runtime = 0.21810102462768555\nMean loop = 2.1810102462768555e-05\n------------------------------------------\n------------------------------------------\nfonc2(), 10000 loops.\nTotal runtime = 0.21857643127441406\nMean loop = 2.1857643127441406e-05\n------------------------------------------\n\n```\n### que constate-ton ?\nQue l'avantage de concatener pr\u00e9alablement une seule fois n'est pas du tout \u00e9vident sur le fait de concat\u00e9ner l'\u00e9quivalent de la chaine`a` \u00e0 chaque tour de boucle. \n\nCes comparaisons entre diverses impl\u00e9mentations ou diverses fonctions ne sont pas toujours aussi proches; voyez `timetime_demo.py`\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://framagit.org/zenjo/timetime/tree/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://framagit.org/zenjo/timetime/wikis/home", "keywords": "", "license": "GNU GPL", "maintainer": "Robert Sebille", "maintainer_email": "robert@sebille.name", "name": "timetime", "package_url": "https://pypi.org/project/timetime/", "platform": "", "project_url": "https://pypi.org/project/timetime/", "project_urls": { "Download": "https://framagit.org/zenjo/timetime/tree/master", "Homepage": "https://framagit.org/zenjo/timetime/wikis/home" }, "release_url": "https://pypi.org/project/timetime/1.0/", "requires_dist": null, "requires_python": "", "summary": "TimeTime est une classe qui permet d'afficher le temps d'ex\u00e9cution de fonctions, \u00e9galement de les comparer entre eux", "version": "1.0" }, "last_serial": 5349435, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c088ca50deb3d7b244e96791366262c3", "sha256": "bd9c744cfaff809eb32068d19f35492f8056f3a92cd90100d7e0fcac0f99583d" }, "downloads": -1, "filename": "timetime-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c088ca50deb3d7b244e96791366262c3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3669, "upload_time": "2019-05-31T13:13:19", "url": "https://files.pythonhosted.org/packages/7f/df/459dbddf02c18a7ff6e5848a1118a6ab07e8b11add76036a89a87918ac95/timetime-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3fc12c47562748136239cc2d9d66d5a2", "sha256": "183a843d62cab999ade1a73eeab42c377f9f424dce086547a364e44ea4821fbf" }, "downloads": -1, "filename": "timetime-0.1.tar.gz", "has_sig": false, "md5_digest": "3fc12c47562748136239cc2d9d66d5a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3419, "upload_time": "2019-05-31T13:13:21", "url": "https://files.pythonhosted.org/packages/a8/93/62d6b8ae9074aa967d77bbda123bc33e0433a14916205e59d300363f6446/timetime-0.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "6ea0ac27c3ab5094f41ef984dee15b9b", "sha256": "918634a42d4c5e8e7dd0a87560a89940e46b846cf2549a0861dcd156f433bef2" }, "downloads": -1, "filename": "timetime-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6ea0ac27c3ab5094f41ef984dee15b9b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4893, "upload_time": "2019-06-02T17:44:29", "url": "https://files.pythonhosted.org/packages/ec/47/fba556812831d15fd7aece46be1aa95bcf0f7c16ec485e9fd1190d8121fe/timetime-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9d501cda0dba1448b8ce9bea433c86a", "sha256": "cb63facbb90b9edeac898dc46bb548e2c0a86b6c18938468759d4f41399e40bc" }, "downloads": -1, "filename": "timetime-1.0.tar.gz", "has_sig": false, "md5_digest": "c9d501cda0dba1448b8ce9bea433c86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4660, "upload_time": "2019-06-02T17:44:31", "url": "https://files.pythonhosted.org/packages/b8/85/985250a4c5eeae56308a531d678b637a4a4dcf4ed8d9235a76e7a74f1041/timetime-1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6ea0ac27c3ab5094f41ef984dee15b9b", "sha256": "918634a42d4c5e8e7dd0a87560a89940e46b846cf2549a0861dcd156f433bef2" }, "downloads": -1, "filename": "timetime-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6ea0ac27c3ab5094f41ef984dee15b9b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4893, "upload_time": "2019-06-02T17:44:29", "url": "https://files.pythonhosted.org/packages/ec/47/fba556812831d15fd7aece46be1aa95bcf0f7c16ec485e9fd1190d8121fe/timetime-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9d501cda0dba1448b8ce9bea433c86a", "sha256": "cb63facbb90b9edeac898dc46bb548e2c0a86b6c18938468759d4f41399e40bc" }, "downloads": -1, "filename": "timetime-1.0.tar.gz", "has_sig": false, "md5_digest": "c9d501cda0dba1448b8ce9bea433c86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4660, "upload_time": "2019-06-02T17:44:31", "url": "https://files.pythonhosted.org/packages/b8/85/985250a4c5eeae56308a531d678b637a4a4dcf4ed8d9235a76e7a74f1041/timetime-1.0.tar.gz" } ] }