{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Install dependencies:\n", "!pip install requests pydash" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Import dependencies\n", "import requests, timeit, pydash\n", "from getdeep import getdeep\n", "# Import large data\n", "data = requests.get('https://raw.githubusercontent.com/json-iterator/test-data/master/large-file.json').json()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Compute a large number of times\n", "number = 500\n", "get_deep = timeit.timeit(lambda: [getdeep(data, f\"{i}.repo.url\") for i in range(len(data)-1)], number=number)\n", "pydash_get = timeit.timeit(lambda: [pydash.get(data, f\"{i}.repo.url\") for i in range(len(data)-1)], number=number)\n", "builtin = timeit.timeit(lambda: [data[i]['repo']['url'] for i in range(len(data)-1)], number=number)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Execution time for getdeep: 4.7918364580255\n", "Execution time for pydash.get: 44.680755833978765\n", "Execution time for built-in: 0.8221777090220712\n", "Speedup pydash.get/getdeep: 9.324349072712238\n", "Speedup getdeep/builtin: 5.82822473224808\n" ] } ], "source": [ "# Print results\n", "print(\"Execution time for getdeep:\", get_deep)\n", "print(\"Execution time for pydash.get:\", pydash_get)\n", "print(\"Execution time for built-in:\", builtin)\n", "print(\"Speedup pydash.get/getdeep:\", (pydash_get/get_deep))\n", "print(\"Speedup getdeep/builtin:\", (get_deep/builtin))" ] } ], "metadata": { "interpreter": { "hash": "b59e89d53b4076ef8b18f384a227b313dda493a06606474095ec1e5d11f17bb2" }, "kernelspec": { "display_name": "Python 3.10.1 64-bit ('3.10.1')", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.1" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }