Last active
November 29, 2016 14:36
-
-
Save lion137/a7b5662c564abab20d6d81af6d659d5c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Jupyter CPU Profilling" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Let's check the implementation of an AVl Tree (https://bitbucket.org/snippets/lion137/88nLq)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import AVL_tree as tr" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "As a tool I will use python cProfiler; creating and make an instance of a profiler class:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import cProfile" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pstats" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler = cProfile.Profile()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Test file now: creating symbole table with milion ints.\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 19, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Overwriting tree_tests.py\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%%writefile tree_tests.py\n", | |
| "import random\n", | |
| "\n", | |
| "def test():\n", | |
| " t1 = tr.BinarySearchTree()\n", | |
| " for _ in range(int(1e6)):\n", | |
| " t1[str(_)] = _\n", | |
| " #for _ in range(int(1e5)):\n", | |
| " #t1.get(random.randint(-10000, 10000))\n", | |
| "\n", | |
| "if __name__ == '__main__':\n", | |
| " test()\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# %load test file now\n", | |
| "import random\n", | |
| "\n", | |
| "def test():\n", | |
| " t1 = tr.BinarySearchTree()\n", | |
| " for _ in range(int(1e6)):\n", | |
| " t1[str(_)] = _\n", | |
| " #for _ in range(int(1e5)):\n", | |
| " #t1.get(random.randint(-10000, 10000))\n", | |
| "\n", | |
| "if __name__ == '__main__':\n", | |
| " test()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 21, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler = cProfile.Profile() # make an instance" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler.runcall(test) # profiler's doing the job..." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 23, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " 61854400 function calls (38691689 primitive calls) in 40.765 seconds\n", | |
| "\n", | |
| " Ordered by: standard name\n", | |
| "\n", | |
| " ncalls tottime percall cumtime percall filename:lineno(function)\n", | |
| " 1 1.360 1.360 40.765 40.765 <ipython-input-20-917dc017f4b6>:4(test)\n", | |
| " 1000000 0.797 0.000 0.797 0.000 AVL_tree.py:10(__init__)\n", | |
| " 1000000 0.478 0.000 39.405 0.000 AVL_tree.py:111(__setitem__)\n", | |
| " 1000000 0.722 0.000 38.927 0.000 AVL_tree.py:114(put)\n", | |
| "21140998/999999 18.283 0.000 38.205 0.000 AVL_tree.py:122(_put)\n", | |
| " 898233 2.148 0.000 7.959 0.000 AVL_tree.py:142(rotateLeft)\n", | |
| " 352954 0.831 0.000 1.201 0.000 AVL_tree.py:170(rotateRight)\n", | |
| "4021711/999999 5.019 0.000 16.360 0.000 AVL_tree.py:197(updateBalance)\n", | |
| " 6218045 0.849 0.000 0.849 0.000 AVL_tree.py:21(hasLeftChild)\n", | |
| " 919456 0.755 0.000 9.914 0.000 AVL_tree.py:211(rebalance)\n", | |
| " 14922953 1.915 0.000 1.915 0.000 AVL_tree.py:24(hasRightChild)\n", | |
| " 4353400 1.194 0.000 1.194 0.000 AVL_tree.py:27(isLeftChild)\n", | |
| " 2273086 0.569 0.000 0.569 0.000 AVL_tree.py:30(isRightChild)\n", | |
| " 1251187 0.214 0.000 0.214 0.000 AVL_tree.py:33(isRoot)\n", | |
| " 1 0.000 0.000 0.000 0.000 AVL_tree.py:98(__init__)\n", | |
| " 1251187 0.366 0.000 0.366 0.000 {built-in method builtins.max}\n", | |
| " 1251187 5.266 0.000 5.266 0.000 {built-in method builtins.min}\n", | |
| " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", | |
| "\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "profiler.print_stats() # and printing stats" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| " There is lots calls to updatebalance, also, built in min consumes 4.915." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "We can, also, make nice visualization via snakeviz (pip install snakeviz) " | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler2 = cProfile.Profile()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler2.runcall(test)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "stats = pstats.Stats('tree_tests.stats') # stats in file for later" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Snakeviz is starting in new tab and it's look like (in real is interactive):" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "snakeviz web server started on 127.0.0.1:8080; enter Ctrl-C to exit\n", | |
| "http://127.0.0.1:8080/snakeviz/%2Fhome%2Flion%2Fprojects%2Fpython%2Fnotebooks%2Fblog_and_notes%2Fprofiling%2Ftree_tests.stats\n", | |
| "^C\n", | |
| "Bye!\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "! snakeviz tree_tests.stats" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "from IPython.display import HTML, display" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<!DOCTYPE html>\n", | |
| "<html><head>\n", | |
| "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n", | |
| "<meta charset=\"utf-8\" .=\"\">\n", | |
| "<title>tree_tests</title>\n", | |
| "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n", | |
| "<link href=\"tree_tests_files/snakeviz.css\" rel=\"stylesheet\">\n", | |
| "<!-- DataTables CSS -->\n", | |
| "<link href=\"tree_tests_files/jquery.css\" rel=\"stylesheet\">\n", | |
| "<link rel=\"stylesheet\" type=\"text/css\" href=\"tree_tests_files/socialwidgets.css\"></head>\n", | |
| "<body>\n", | |
| "<h1 id=\"snakeviz-text\">SnakeViz</h1>\n", | |
| "<!-- reset button -->\n", | |
| "<button id=\"resetbutton\" disabled=\"True\">Reset</button>\n", | |
| "<!-- style select -->\n", | |
| "<label id=\"sv-style-label\">Style:\n", | |
| "<select name=\"sv-style\" id=\"sv-style-select\">\n", | |
| "<option value=\"sunburst\" selected=\"selected\">Sunburst</option>\n", | |
| "<option value=\"icicle\">Icicle</option>\n", | |
| "</select>\n", | |
| "</label>\n", | |
| "<!-- depth select -->\n", | |
| "<label id=\"sv-depth-label\">Depth:\n", | |
| "<select name=\"sv-depth\" id=\"sv-depth-select\">\n", | |
| "\n", | |
| "<option value=\"3\">3</option>\n", | |
| "\n", | |
| "<option value=\"5\" selected=\"selected\">5</option>\n", | |
| "\n", | |
| "<option value=\"10\">10</option>\n", | |
| "\n", | |
| "<option value=\"15\">15</option>\n", | |
| "\n", | |
| "<option value=\"20\">20</option>\n", | |
| "\n", | |
| "</select>\n", | |
| "</label>\n", | |
| "<!-- cutoff select -->\n", | |
| "<label id=\"sv-cutoff-label\">Cutoff:\n", | |
| "<select name=\"sv-cutoff\" id=\"sv-cutoff-select\">\n", | |
| "<option value=\"0.001\" selected=\"selected\">1 ⁄ 1000</option>\n", | |
| "<option value=\"0.01\">1 ⁄ 100</option>\n", | |
| "<option value=\"0\">None</option>\n", | |
| "</select>\n", | |
| "</label>\n", | |
| "<!-- information div -->\n", | |
| "<div id=\"sv-info-div\" class=\"sunburst\" style=\"height: 463.8px; width: 411.714px; display: none;\"><div class=\"sv-info-label\">Name:</div>\n", | |
| "<div class=\"sv-info-item\">acquire</div>\n", | |
| "<div class=\"sv-info-label\">Cumulative Time:</div>\n", | |
| "<div class=\"sv-info-item\">0.0000310 s (0.53 %)</div>\n", | |
| "<div class=\"sv-info-label\">File:</div>\n", | |
| "<div class=\"sv-info-item\"><frozen importlib._bootstrap></div>\n", | |
| "<div class=\"sv-info-label\">Line:</div>\n", | |
| "<div class=\"sv-info-item\">94</div>\n", | |
| "<div class=\"sv-info-label\">Directory:</div>\n", | |
| "<div class=\"sv-info-item\"></div></div>\n", | |
| "<!-- call stack -->\n", | |
| "<div id=\"sv-call-stack\">\n", | |
| "<div id=\"working-spinner\" class=\"spinner\" style=\"display: none;\">\n", | |
| "<div class=\"bounce1\"></div>\n", | |
| "<div class=\"bounce2\"></div>\n", | |
| "<div class=\"bounce3\"></div>\n", | |
| "</div>\n", | |
| "<div style=\"display: inline-block;\">\n", | |
| "<button id=\"sv-call-stack-btn\">Call Stack</button>\n", | |
| "</div>\n", | |
| "<div id=\"sv-call-stack-list\"><div><span>0. </span><span>~:0(<built-in method builtins.exec>)</span></div></div>\n", | |
| "</div>\n", | |
| "<!-- Error message -->\n", | |
| "<div id=\"sv-error-div\" class=\"sv-error-msg\">\n", | |
| "<p>\n", | |
| "An error occurred processing your profile.\n", | |
| "You can try a lower depth, a larger cutoff,\n", | |
| "or try profiling a smaller portion of your code.\n", | |
| "If you continue to have problems you can\n", | |
| "<a href=\"https://github.com/jiffyclub/snakeviz/issues\">\n", | |
| "contact us on GitHub</a>.\n", | |
| "</p>\n", | |
| "<div id=\"sv-error-close-div\" class=\"sv-error-close\">Close</div>\n", | |
| "</div>\n", | |
| "<!-- vis -->\n", | |
| "<div style=\"text-align: center;\">\n", | |
| "<div id=\"chart\" style=\"margin-left: auto; margin-right: auto;\"><svg width=\"618.4000000000001\" height=\"618.4000000000001\"><g id=\"container\" transform=\"translate(309.20000000000005,309.20000000000005)\"><circle r=\"309.20000000000005\" style=\"opacity: 0;\"></circle><path id=\"path-0\" d=\"M0,51.533333333333346A51.533333333333346,51.533333333333346 0 1,1 0,-51.533333333333346A51.533333333333346,51.533333333333346 0 1,1 0,51.533333333333346Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-1\" d=\"M41.83879514251229,94.19263771017708A103.06666666666669,103.06666666666669 0 0,1 -96.65260602024229,-35.79122137163815L-48.326303010121144,-17.895610685819076A51.533333333333346,51.533333333333346 0 0,0 20.919397571256145,47.09631885508854Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-2\" d=\"M-153.58258993077342,-17.70728861672214A154.60000000000002,154.60000000000002 0 0,1 -150.43613211503674,-35.638885424031095L-100.29075474335784,-23.759256949354068A103.06666666666669,103.06666666666669 0 0,0 -102.3883932871823,-11.804859077814761Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 202, 225); stroke: rgb(255, 255, 255);\"></path><path id=\"path-3\" d=\"M-204.7767865743646,-23.609718155629523A206.13333333333338,206.13333333333338 0 0,1 -200.67003126380004,-47.14328863896372L-150.50252344785002,-35.35746647922278A154.60000000000002,154.60000000000002 0 0,0 -153.58258993077342,-17.70728861672214Z\" fill-rule=\"evenodd\" style=\"fill: rgb(198, 219, 239); stroke: rgb(255, 255, 255);\"></path><path id=\"path-4\" d=\"M-251.53537463160436,-55.87545453998174A257.6666666666667,257.6666666666667 0 0,1 -251.11033012287,-57.75563363598711L-200.88826409829605,-46.204506908789696A206.13333333333338,206.13333333333338 0 0,0 -201.22829970528352,-44.7003636319854Z\" fill-rule=\"evenodd\" style=\"fill: rgb(230, 85, 13); stroke: rgb(255, 255, 255);\"></path><path id=\"path-5\" d=\"M-255.9709832179557,-29.512147694536896A257.6666666666667,257.6666666666667 0 0,1 -252.0468809821357,-53.52084545565631L-201.6375047857086,-42.81667636452505A206.13333333333338,206.13333333333338 0 0,0 -204.7767865743646,-23.609718155629523Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 141, 60); stroke: rgb(255, 255, 255);\"></path><path id=\"path-6\" d=\"M-252.0468809821357,-53.52084545565631A257.6666666666667,257.6666666666667 0 0,1 -251.53537463160436,-55.87545453998174L-201.22829970528352,-44.7003636319854A206.13333333333338,206.13333333333338 0 0,0 -201.6375047857086,-42.81667636452505Z\" fill-rule=\"evenodd\" style=\"fill: rgb(198, 219, 239); stroke: rgb(255, 255, 255);\"></path><path id=\"path-7\" d=\"M-150.43613211503674,-35.638885424031095A154.60000000000002,154.60000000000002 0 0,1 -148.03512060467975,-44.573120460182395L-98.69008040311984,-29.7154136401216A103.06666666666669,103.06666666666669 0 0,0 -100.29075474335784,-23.759256949354068Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 174, 107); stroke: rgb(255, 255, 255);\"></path><path id=\"path-8\" d=\"M-198.1146879458162,-56.934361603894274A206.13333333333338,206.13333333333338 0 0,1 -197.57361912615028,-58.78448891081756L-148.1802143446127,-44.088366683113165A154.60000000000002,154.60000000000002 0 0,0 -148.58601595936216,-42.7007712029207Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 208, 162); stroke: rgb(255, 255, 255);\"></path><path id=\"path-9\" d=\"M-200.58150948671567,-47.518513898708136A206.13333333333338,206.13333333333338 0 0,1 -198.1146879458162,-56.934361603894274L-148.58601595936216,-42.7007712029207A154.60000000000002,154.60000000000002 0 0,0 -150.43613211503674,-35.638885424031095Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 174, 107); stroke: rgb(255, 255, 255);\"></path><path id=\"path-10\" d=\"M62.75819271376843,141.2889565652656A154.60000000000002,154.60000000000002 0 0,1 -153.58258993077342,-17.70728861672214L-102.3883932871823,-11.804859077814761A103.06666666666669,103.06666666666669 0 0,0 41.83879514251229,94.19263771017708Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-11\" d=\"M-205.17768290415694,-19.825981670332357A206.13333333333338,206.13333333333338 0 0,1 -204.8754991511529,-22.737215279736308L-153.65662436336467,-17.052911459802228A154.60000000000002,154.60000000000002 0 0,0 -153.8832621781177,-14.869486252749267Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-12\" d=\"M-256.47210363019616,-24.782477087915446A257.6666666666667,257.6666666666667 0 0,1 -256.1838675869662,-27.60320813410842L-204.94709406957296,-22.082566507286742A206.13333333333338,206.13333333333338 0 0,0 -205.17768290415694,-19.825981670332357Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-13\" d=\"M-307.7665243562354,-29.738972505498534A309.20000000000005,309.20000000000005 0 0,1 -307.46736393845373,-32.68730812927979L-256.22280328204477,-27.239423441066492A257.6666666666667,257.6666666666667 0 0,0 -256.47210363019616,-24.782477087915446Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-14\" d=\"M83.67759028502458,188.38527542035416A206.13333333333338,206.13333333333338 0 0,1 -205.81991030222397,-11.362906067358344L-154.36493272666797,-8.522179550518757A154.60000000000002,154.60000000000002 0 0,0 62.75819271376843,141.2889565652656Z\" fill-rule=\"evenodd\" style=\"fill: rgb(199, 233, 192); stroke: rgb(255, 255, 255);\"></path><path id=\"path-15\" d=\"M-232.229921664802,111.63052716291837A257.6666666666667,257.6666666666667 0 0,1 -257.29484148978617,-13.837472813232326L-205.83587319182894,-11.069978250585862A206.13333333333338,206.13333333333338 0 0,0 -185.78393733184163,89.30442173033471Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-16\" d=\"M-308.9923517043033,-11.329897980305953A309.20000000000005,309.20000000000005 0 0,1 -308.9191099674046,-13.17662691839547L-257.43259163950387,-10.980522431996226A257.6666666666667,257.6666666666667 0 0,0 -257.4936264202528,-9.44158165025496Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 154, 200); stroke: rgb(255, 255, 255);\"></path><path id=\"path-17\" d=\"M-278.6759059977624,133.95663259550204A309.20000000000005,309.20000000000005 0 0,1 -309.1749013049916,-3.9395942746356285L-257.64575108749295,-3.2829952288630233A257.6666666666667,257.6666666666667 0 0,0 -232.229921664802,111.63052716291837Z\" fill-rule=\"evenodd\" style=\"fill: rgb(188, 189, 220); stroke: rgb(255, 255, 255);\"></path><path id=\"path-18\" d=\"M-309.1749013049916,-3.9395942746356285A309.20000000000005,309.20000000000005 0 0,1 -308.9923517043033,-11.329897980305953L-257.4936264202528,-9.44158165025496A257.6666666666667,257.6666666666667 0 0,0 -257.64575108749295,-3.2829952288630233Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-19\" d=\"M104.5969878562807,235.48159427544266A257.6666666666667,257.6666666666667 0 0,1 -232.229921664802,111.63052716291837L-185.78393733184163,89.30442173033471A206.13333333333338,206.13333333333338 0 0,0 83.67759028502458,188.38527542035416Z\" fill-rule=\"evenodd\" style=\"fill: rgb(218, 218, 235); stroke: rgb(255, 255, 255);\"></path><path id=\"path-20\" d=\"M-276.4968840339537,138.39838553796213A309.20000000000005,309.20000000000005 0 0,1 -277.6871033714197,135.99453158561371L-231.40591947618307,113.32877632134476A257.6666666666667,257.6666666666667 0 0,0 -230.4140700282947,115.33198794830176Z\" fill-rule=\"evenodd\" style=\"fill: rgb(99, 99, 99); stroke: rgb(255, 255, 255);\"></path><path id=\"path-21\" d=\"M-176.76639012232303,253.6893441260841A309.20000000000005,309.20000000000005 0 0,1 -276.4968840339537,138.39838553796213L-230.4140700282947,115.33198794830176A257.6666666666667,257.6666666666667 0 0,0 -147.30532510193586,211.40778677173674Z\" fill-rule=\"evenodd\" style=\"fill: rgb(150, 150, 150); stroke: rgb(255, 255, 255);\"></path><path id=\"path-22\" d=\"M125.51638542753686,282.5779131305312A309.20000000000005,309.20000000000005 0 0,1 -176.76639012232303,253.6893441260841L-147.30532510193586,211.40778677173674A257.6666666666667,257.6666666666667 0 0,0 104.5969878562807,235.48159427544266Z\" fill-rule=\"evenodd\" style=\"fill: rgb(189, 189, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-23\" d=\"M-205.81991030222397,-11.362906067358344A206.13333333333338,206.13333333333338 0 0,1 -205.17768290415694,-19.825981670332357L-153.8832621781177,-14.869486252749267A154.60000000000002,154.60000000000002 0 0,0 -154.36493272666797,-8.522179550518757Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-24\" d=\"M-256.9140418371066,-19.679588868483858A257.6666666666667,257.6666666666667 0 0,1 -256.68193146693204,-22.505491985653872L-205.34554517354564,-18.0043935885231A206.13333333333338,206.13333333333338 0 0,0 -205.53123346968533,-15.74367109478709Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-25\" d=\"M-308.29685020452797,-23.61550664218063A309.20000000000005,309.20000000000005 0 0,1 -308.01831776031844,-27.006590382784648L-256.68193146693204,-22.505491985653872A257.6666666666667,257.6666666666667 0 0,0 -256.9140418371066,-19.679588868483858Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-26\" d=\"M-257.2748878777799,-14.203632584197926A257.6666666666667,257.6666666666667 0 0,1 -256.9140418371066,-19.679588868483858L-205.53123346968533,-15.74367109478709A206.13333333333338,206.13333333333338 0 0,0 -205.81991030222397,-11.362906067358344Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-27\" d=\"M-308.47938066983,-21.097670524447206A309.20000000000005,309.20000000000005 0 0,1 -308.29685020452797,-23.615506642180357L-256.9140418371066,-19.679588868483627A257.6666666666667,257.6666666666667 0 0,0 -257.0661505581917,-17.581392103706005Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 202, 225); stroke: rgb(255, 255, 255);\"></path><path id=\"path-28\" d=\"M-308.72986545333595,-17.044359101037514A309.20000000000005,309.20000000000005 0 0,1 -308.47938066983,-21.097670524447206L-257.0661505581917,-17.581392103706005A257.6666666666667,257.6666666666667 0 0,0 -257.2748878777799,-14.203632584197926Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-29\" d=\"M-256.68193146693204,-22.505491985653872A257.6666666666667,257.6666666666667 0 0,1 -256.4808846676679,-24.691433964060362L-205.18470773413435,-19.753147171248294A206.13333333333338,206.13333333333338 0 0,0 -205.34554517354564,-18.0043935885231Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-30\" d=\"M-145.76592401702172,-51.51170153920227A154.60000000000002,154.60000000000002 0 0,1 -145.12895194173296,-53.279895911067335L-96.75263462782199,-35.51993060737823A103.06666666666669,103.06666666666669 0 0,0 -97.17728267801449,-34.341134359468185Z\" fill-rule=\"evenodd\" style=\"fill: rgb(198, 219, 239); stroke: rgb(255, 255, 255);\"></path><path id=\"path-31\" d=\"M-194.35456535602898,-68.68226871893637A206.13333333333338,206.13333333333338 0 0,1 -193.70380352140128,-70.49672057942479L-145.27785264105097,-52.872540434568585A154.60000000000002,154.60000000000002 0 0,0 -145.76592401702172,-51.51170153920227Z\" fill-rule=\"evenodd\" style=\"fill: rgb(230, 85, 13); stroke: rgb(255, 255, 255);\"></path><path id=\"path-32\" d=\"M-148.03512060467975,-44.573120460182395A154.60000000000002,154.60000000000002 0 0,1 -145.76592401702172,-51.51170153920227L-97.17728267801449,-34.341134359468185A103.06666666666669,103.06666666666669 0 0,0 -98.69008040311984,-29.7154136401216Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-33\" d=\"M-96.65260602024229,-35.79122137163815A103.06666666666669,103.06666666666669 0 0,1 -1.8933039514818083e-14,-103.06666666666669L-9.466519757409041e-15,-51.533333333333346A51.533333333333346,51.533333333333346 0 0,0 -48.326303010121144,-17.895610685819076Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 141, 60); stroke: rgb(255, 255, 255);\"></path><path id=\"path-34\" d=\"M-144.9789090303634,-53.686832057457224A154.60000000000002,154.60000000000002 0 0,1 -6.431605184176523,-154.4661595779311L-4.287736789451015,-102.97743971862074A103.06666666666669,103.06666666666669 0 0,0 -96.65260602024229,-35.79122137163815Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-35\" d=\"M-10.6976318186965,-205.85556048983165A206.13333333333338,206.13333333333338 0 0,1 -9.065291461879182,-205.9339010503669L-6.798968596409386,-154.45042578777517A154.60000000000002,154.60000000000002 0 0,0 -8.023223864022375,-154.39167036737373Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-36\" d=\"M-13.372039773370624,-257.31945061228953A257.6666666666667,257.6666666666667 0 0,1 -11.790776716170647,-257.39675346736703L-9.43262137293652,-205.91740277389366A206.13333333333338,206.13333333333338 0 0,0 -10.6976318186965,-205.85556048983165Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-37\" d=\"M-16.04644772804475,-308.78334073474747A309.20000000000005,309.20000000000005 0 0,1 -14.3938043198061,-308.86478983076586L-11.994836933171747,-257.3873248589715A257.6666666666667,257.6666666666667 0 0,0 -13.372039773370624,-257.31945061228953Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-38\" d=\"M-193.30521204048458,-71.5824427432763A206.13333333333338,206.13333333333338 0 0,1 -15.427249309947154,-205.55522637442198L-11.570436982460365,-154.16641978081648A154.60000000000002,154.60000000000002 0 0,0 -144.9789090303634,-53.686832057457224Z\" fill-rule=\"evenodd\" style=\"fill: rgb(199, 233, 192); stroke: rgb(255, 255, 255);\"></path><path id=\"path-39\" d=\"M-89.77722107381334,-241.52052022007317A257.6666666666667,257.6666666666667 0 0,1 -19.48822861428517,-256.9286283320496L-15.590582891428138,-205.54290266563973A206.13333333333338,206.13333333333338 0 0,0 -71.82177685905069,-193.21641617605854Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-40\" d=\"M-107.73266528857602,-289.8246242640878A309.20000000000005,309.20000000000005 0 0,1 -30.434933656277877,-307.6984803559127L-25.362444713564898,-256.41540029659393A257.6666666666667,257.6666666666667 0 0,0 -89.77722107381334,-241.52052022007317Z\" fill-rule=\"evenodd\" style=\"fill: rgb(188, 189, 220); stroke: rgb(255, 255, 255);\"></path><path id=\"path-41\" d=\"M-30.434933656277877,-307.6984803559127A309.20000000000005,309.20000000000005 0 0,1 -26.32468279328722,-308.0773459309088L-21.93723566107268,-256.7311216090906A257.6666666666667,257.6666666666667 0 0,0 -25.362444713564898,-256.41540029659393Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-42\" d=\"M-241.63151505060569,-89.47805342909537A257.6666666666667,257.6666666666667 0 0,1 -89.77722107381334,-241.52052022007317L-71.82177685905069,-193.21641617605854A206.13333333333338,206.13333333333338 0 0,0 -193.30521204048458,-71.5824427432763Z\" fill-rule=\"evenodd\" style=\"fill: rgb(218, 218, 235); stroke: rgb(255, 255, 255);\"></path><path id=\"path-43\" d=\"M-185.38716179514097,-247.45957294382907A309.20000000000005,309.20000000000005 0 0,1 -110.31765227878974,-288.85057658882397L-91.93137689899145,-240.70881382401998A257.6666666666667,257.6666666666667 0 0,0 -154.4893014959508,-206.21631078652422Z\" fill-rule=\"evenodd\" style=\"fill: rgb(150, 150, 150); stroke: rgb(255, 255, 255);\"></path><path id=\"path-44\" d=\"M-289.9578180607268,-107.37366411491445A309.20000000000005,309.20000000000005 0 0,1 -185.38716179514097,-247.45957294382907L-154.4893014959508,-206.21631078652422A257.6666666666667,257.6666666666667 0 0,0 -241.63151505060569,-89.47805342909537Z\" fill-rule=\"evenodd\" style=\"fill: rgb(189, 189, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-45\" d=\"M-15.427249309947154,-205.55522637442198A206.13333333333338,206.13333333333338 0 0,1 -10.6976318186965,-205.85556048983165L-8.023223864022375,-154.39167036737373A154.60000000000002,154.60000000000002 0 0,0 -11.570436982460365,-154.16641978081648Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-46\" d=\"M-16.22719469223284,-257.1551851772223A257.6666666666667,257.6666666666667 0 0,1 -14.646887014891341,-257.2500336479747L-11.717509611913075,-205.8000269183798A206.13333333333338,206.13333333333338 0 0,0 -12.981755753786272,-205.72414814177787Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-47\" d=\"M-19.472633630679407,-308.58622221266677A309.20000000000005,309.20000000000005 0 0,1 -17.57626441786961,-308.7000403775697L-14.646887014891341,-257.2500336479747A257.6666666666667,257.6666666666667 0 0,0 -16.22719469223284,-257.1551851772223Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-48\" d=\"M-19.28406163743394,-256.94403296802744A257.6666666666667,257.6666666666667 0 0,1 -16.22719469223284,-257.1551851772223L-12.981755753786272,-205.72414814177787A206.13333333333338,206.13333333333338 0 0,0 -15.427249309947154,-205.55522637442198Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-49\" d=\"M-23.14087396492073,-308.33283956163297A309.20000000000005,309.20000000000005 0 0,1 -20.879146188275726,-308.4942483328476L-17.39928849022977,-257.07854027737295A257.6666666666667,257.6666666666667 0 0,0 -19.28406163743394,-256.94403296802744Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-50\" d=\"M-1.1565666172631137,-154.59567378701075A154.60000000000002,154.60000000000002 0 0,1 -0.36143011000242625,-154.5995775164848L-0.2409534066682842,-103.06638501098988A103.06666666666669,103.06666666666669 0 0,0 -0.7710444115087426,-103.06378252467384Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 174, 107); stroke: rgb(255, 255, 255);\"></path><path id=\"path-51\" d=\"M-3.397172679386885,-154.5626708419159A154.60000000000002,154.60000000000002 0 0,1 -1.1565666172631137,-154.59567378701075L-0.7710444115087426,-103.06378252467384A103.06666666666669,103.06666666666669 0 0,0 -2.2647817862579234,-103.04178056127726Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 208, 162); stroke: rgb(255, 255, 255);\"></path><path id=\"path-52\" d=\"M-4.529563572515847,-206.08356112255453A206.13333333333338,206.13333333333338 0 0,1 -2.313106263967549,-206.12035477002925L-1.7348296979756617,-154.59026607752193A154.60000000000002,154.60000000000002 0 0,0 -3.397172679386885,-154.5626708419159Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 208, 162); stroke: rgb(255, 255, 255);\"></path><path id=\"path-53\" d=\"M-6.431605184176523,-154.4661595779311A154.60000000000002,154.60000000000002 0 0,1 -3.397172679386885,-154.5626708419159L-2.2647817862579234,-103.04178056127726A103.06666666666669,103.06666666666669 0 0,0 -4.287736789451015,-102.97743971862074Z\" fill-rule=\"evenodd\" style=\"fill: rgb(253, 141, 60); stroke: rgb(255, 255, 255);\"></path><path id=\"path-54\" d=\"M6.311013171606029e-15,-103.06666666666669A103.06666666666669,103.06666666666669 0 0,1 41.83879514251229,94.19263771017708L20.919397571256145,47.09631885508854A51.533333333333346,51.533333333333346 0 0,0 3.1555065858030143e-15,-51.533333333333346Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-55\" d=\"M9.466519757409041e-15,-154.60000000000002A154.60000000000002,154.60000000000002 0 0,1 63.61583749544272,140.90488004236556L42.41055833029515,93.93658669491039A103.06666666666669,103.06666666666669 0 0,0 6.311013171606029e-15,-103.06666666666669Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 163, 84); stroke: rgb(255, 255, 255);\"></path><path id=\"path-56\" d=\"M89.27657027387623,185.79732266974347A206.13333333333338,206.13333333333338 0 0,1 85.85367164620713,187.40357033945853L64.39025373465535,140.55267775459387A154.60000000000002,154.60000000000002 0 0,0 66.95742770540717,139.3479920023076Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-57\" d=\"M111.59571284234526,232.2466533371793A257.6666666666667,257.6666666666667 0 0,1 108.28297934840887,233.80955389920058L86.62638347872712,187.0476431193605A206.13333333333338,206.13333333333338 0 0,0 89.27657027387623,185.79732266974347Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-58\" d=\"M133.91485541081434,278.6959840046152A309.20000000000005,309.20000000000005 0 0,1 130.45400716354476,280.33264528943795L108.71167263628729,233.6105377411983A257.6666666666667,257.6666666666667 0 0,0 111.59571284234526,232.2466533371793Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-59\" d=\"M1.2622026343212057e-14,-206.13333333333338A206.13333333333338,206.13333333333338 0 0,1 99.02903428201363,180.7877249159436L74.27177571151022,135.5907936869577A154.60000000000002,154.60000000000002 0 0,0 9.466519757409041e-15,-154.60000000000002Z\" fill-rule=\"evenodd\" style=\"fill: rgb(199, 233, 192); stroke: rgb(255, 255, 255);\"></path><path id=\"path-60\" d=\"M235.31729040871218,104.96610855801471A257.6666666666667,257.6666666666667 0 0,1 124.20155839732175,225.7566920443064L99.36124671785741,180.60535363544514A206.13333333333338,206.13333333333338 0 0,0 188.25383232696979,83.97288684641178Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-61\" d=\"M152.91133517713183,268.7429321384041A309.20000000000005,309.20000000000005 0 0,1 151.52587303342966,269.52652893816776L126.27156086119138,224.60544078180646A257.6666666666667,257.6666666666667 0 0,0 127.42611264760984,223.95244344867007Z\" fill-rule=\"evenodd\" style=\"fill: rgb(116, 196, 118); stroke: rgb(255, 255, 255);\"></path><path id=\"path-62\" d=\"M154.9819191476656,267.5541902817193A309.20000000000005,309.20000000000005 0 0,1 152.91133517713183,268.7429321384041L127.42611264760984,223.95244344867007A257.6666666666667,257.6666666666667 0 0,0 129.15159928972133,222.96182523476608Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 154, 200); stroke: rgb(255, 255, 255);\"></path><path id=\"path-63\" d=\"M282.38074849045466,125.95933026961767A309.20000000000005,309.20000000000005 0 0,1 163.17062080778504,262.6404167396976L135.97551733982087,218.867013949748A257.6666666666667,257.6666666666667 0 0,0 235.31729040871218,104.96610855801471Z\" fill-rule=\"evenodd\" style=\"fill: rgb(188, 189, 220); stroke: rgb(255, 255, 255);\"></path><path id=\"path-64\" d=\"M163.17062080778504,262.6404167396976A309.20000000000005,309.20000000000005 0 0,1 154.9819191476656,267.5541902817193L129.15159928972133,222.96182523476608A257.6666666666667,257.6666666666667 0 0,0 135.97551733982087,218.867013949748Z\" fill-rule=\"evenodd\" style=\"fill: rgb(117, 107, 177); stroke: rgb(255, 255, 255);\"></path><path id=\"path-65\" d=\"M1.5777532929015067e-14,-257.6666666666667A257.6666666666667,257.6666666666667 0 0,1 235.31729040871218,104.96610855801471L188.25383232696979,83.97288684641178A206.13333333333338,206.13333333333338 0 0,0 1.2622026343212057e-14,-206.13333333333338Z\" fill-rule=\"evenodd\" style=\"fill: rgb(218, 218, 235); stroke: rgb(255, 255, 255);\"></path><path id=\"path-66\" d=\"M283.56012984274764,123.28135610693178A309.20000000000005,309.20000000000005 0 0,1 282.91149908969516,124.76266942808424L235.75958257474596,103.9688911900702A257.6666666666667,257.6666666666667 0 0,0 236.3001082022897,102.73446342244314Z\" fill-rule=\"evenodd\" style=\"fill: rgb(161, 217, 155); stroke: rgb(255, 255, 255);\"></path><path id=\"path-67\" d=\"M284.92391314985923,120.09581056544606A309.20000000000005,309.20000000000005 0 0,1 283.56012984274764,123.28135610693178L236.3001082022897,102.73446342244314A257.6666666666667,257.6666666666667 0 0,0 237.43659429154934,100.07984213787171Z\" fill-rule=\"evenodd\" style=\"fill: rgb(99, 99, 99); stroke: rgb(255, 255, 255);\"></path><path id=\"path-68\" d=\"M299.9942106880507,-74.88733907446226A309.20000000000005,309.20000000000005 0 0,1 284.92391314985923,120.09581056544606L237.43659429154934,100.07984213787171A257.6666666666667,257.6666666666667 0 0,0 249.99517557337555,-62.40611589538521Z\" fill-rule=\"evenodd\" style=\"fill: rgb(150, 150, 150); stroke: rgb(255, 255, 255);\"></path><path id=\"path-69\" d=\"M1.8933039514818083e-14,-309.20000000000005A309.20000000000005,309.20000000000005 0 0,1 299.9942106880507,-74.88733907446226L249.99517557337555,-62.40611589538521A257.6666666666667,257.6666666666667 0 0,0 1.5777532929015067e-14,-257.6666666666667Z\" fill-rule=\"evenodd\" style=\"fill: rgb(189, 189, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-70\" d=\"M99.02903428201363,180.7877249159436A206.13333333333338,206.13333333333338 0 0,1 89.27657027387623,185.79732266974347L66.95742770540717,139.3479920023076A154.60000000000002,154.60000000000002 0 0,0 74.27177571151022,135.5907936869577Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path><path id=\"path-71\" d=\"M117.52238663784935,229.30460036827645A257.6666666666667,257.6666666666667 0 0,1 114.25087648485638,230.9520476929209L91.40070118788512,184.76163815433674A206.13333333333338,206.13333333333338 0 0,0 94.0179093102795,183.44368029462117Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-72\" d=\"M141.02686396541924,275.16552044193173A309.20000000000005,309.20000000000005 0 0,1 137.10105178182766,277.1424572315051L114.25087648485638,230.9520476929209A257.6666666666667,257.6666666666667 0 0,0 117.52238663784935,229.30460036827645Z\" fill-rule=\"evenodd\" style=\"fill: rgb(49, 130, 189); stroke: rgb(255, 255, 255);\"></path><path id=\"path-73\" d=\"M123.78629285251702,225.9846561449295A257.6666666666667,257.6666666666667 0 0,1 117.52238663784935,229.30460036827645L94.0179093102795,183.44368029462117A206.13333333333338,206.13333333333338 0 0,0 99.02903428201363,180.7877249159436Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-74\" d=\"M143.92119081908297,273.6628049867522A309.20000000000005,309.20000000000005 0 0,1 141.02686396541924,275.16552044193173L117.52238663784935,229.30460036827645A257.6666666666667,257.6666666666667 0 0,0 119.93432568256912,228.05233748896012Z\" fill-rule=\"evenodd\" style=\"fill: rgb(158, 202, 225); stroke: rgb(255, 255, 255);\"></path><path id=\"path-75\" d=\"M148.54355142302043,271.1815873739154A309.20000000000005,309.20000000000005 0 0,1 143.92119081908297,273.6628049867522L119.93432568256912,228.05233748896012A257.6666666666667,257.6666666666667 0 0,0 123.78629285251702,225.9846561449295Z\" fill-rule=\"evenodd\" style=\"fill: rgb(107, 174, 214); stroke: rgb(255, 255, 255);\"></path><path id=\"path-76\" d=\"M114.25087648485638,230.9520476929209A257.6666666666667,257.6666666666667 0 0,1 111.70220332343021,232.1954540549883L89.36176265874418,185.75636324399068A206.13333333333338,206.13333333333338 0 0,0 91.40070118788512,184.76163815433674Z\" fill-rule=\"evenodd\" style=\"fill: rgb(217, 217, 217); stroke: rgb(255, 255, 255);\"></path></g></svg></div>\n", | |
| "</div>\n", | |
| "<br>\n", | |
| "<!-- stats table -->\n", | |
| "<div id=\"table_div\">\n", | |
| "<div id=\"pstats-table_wrapper\" class=\"dataTables_wrapper no-footer\"><div id=\"pstats-table_filter\" class=\"dataTables_filter\"><label>Search:<input class=\"\" placeholder=\"\" aria-controls=\"pstats-table\" type=\"search\"></label></div><table class=\"display dataTable no-footer\" id=\"pstats-table\" role=\"grid\" aria-describedby=\"pstats-table_info\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n", | |
| "<thead><tr role=\"row\"><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 136px;\" aria-label=\"ncalls: activate to sort column ascending\">ncalls</th><th class=\"sorting_desc\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 159px;\" aria-sort=\"descending\" aria-label=\"tottime: activate to sort column ascending\">tottime</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 151px;\" aria-label=\"percall: activate to sort column ascending\">percall</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 186px;\" aria-label=\"cumtime: activate to sort column ascending\">cumtime</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 151px;\" aria-label=\"percall: activate to sort column ascending\">percall</th><th class=\"sorting\" tabindex=\"0\" aria-controls=\"pstats-table\" rowspan=\"1\" colspan=\"1\" style=\"width: 483px;\" aria-label=\"filename:lineno(function): activate to sort column ascending\">filename:lineno(function)</th></tr></thead><tbody><tr role=\"row\" class=\"odd\"><td>3</td><td class=\"sorting_1\">0.002335</td><td>0.0007783</td><td>0.002335</td><td>0.0007783</td><td>~:0(<built-in method _imp.create_dynamic>)</td></tr><tr role=\"row\" class=\"even\"><td>26</td><td class=\"sorting_1\">0.00043</td><td>1.654e-05</td><td>0.001418</td><td>5.454e-05</td><td><frozen importlib._bootstrap_external>:1215(find_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">0.000246</td><td>0.000123</td><td>0.000246</td><td>0.000123</td><td>~:0(<built-in method marshal.loads>)</td></tr><tr role=\"row\" class=\"even\"><td>33</td><td class=\"sorting_1\">0.000229</td><td>6.939e-06</td><td>0.000229</td><td>6.939e-06</td><td>~:0(<built-in method posix.stat>)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0.000202</td><td>0.000202</td><td>0.000202</td><td>0.000202</td><td>~:0(<built-in method posix.urandom>)</td></tr><tr role=\"row\" class=\"even\"><td>126</td><td class=\"sorting_1\">0.000168</td><td>1.333e-06</td><td>0.000467</td><td>3.706e-06</td><td><frozen importlib._bootstrap_external>:50(_path_join)</td></tr><tr role=\"row\" class=\"odd\"><td>126</td><td class=\"sorting_1\">0.000166</td><td>1.317e-06</td><td>0.000251</td><td>1.992e-06</td><td><frozen importlib._bootstrap_external>:52(<listcomp>)</td></tr><tr role=\"row\" class=\"even\"><td>122</td><td class=\"sorting_1\">0.000132</td><td>1.082e-06</td><td>0.000132</td><td>1.082e-06</td><td>~:0(<method 'format' of 'str' objects>)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0.000101</td><td>0.000101</td><td>0.005012</td><td>0.005012</td><td>random.py:37(<module>)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">0.000101</td><td>5.05e-05</td><td>0.000128</td><td>6.4e-05</td><td>~:0(<built-in method builtins.__build_class__>)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">9.3e-05</td><td>1.86e-05</td><td>0.001608</td><td>0.0003216</td><td><frozen importlib._bootstrap_external>:1101(_get_spec)</td></tr><tr role=\"row\" class=\"even\"><td>132</td><td class=\"sorting_1\">8.7e-05</td><td>6.591e-07</td><td>8.7e-05</td><td>6.591e-07</td><td><frozen importlib._bootstrap_external>:366(_verbose_message)</td></tr><tr role=\"row\" class=\"odd\"><td>256</td><td class=\"sorting_1\">8.5e-05</td><td>3.32e-07</td><td>8.5e-05</td><td>3.32e-07</td><td>~:0(<method 'rstrip' of 'str' objects>)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8.4e-05</td><td>1.68e-05</td><td>0.001763</td><td>0.0003526</td><td><frozen importlib._bootstrap>:879(_find_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">6.4e-05</td><td>3.2e-05</td><td>8.5e-05</td><td>4.25e-05</td><td><frozen importlib._bootstrap_external>:816(get_data)</td></tr><tr role=\"row\" class=\"even\"><td>5/1</td><td class=\"sorting_1\">5e-05</td><td>5e-05</td><td>0.005413</td><td>0.005413</td><td><frozen importlib._bootstrap>:659(_load_unlocked)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">4.9e-05</td><td>9.8e-06</td><td>0.000185</td><td>3.7e-05</td><td><frozen importlib._bootstrap>:510(_init_module_attrs)</td></tr><tr role=\"row\" class=\"even\"><td>130</td><td class=\"sorting_1\">4.9e-05</td><td>3.769e-07</td><td>4.9e-05</td><td>3.769e-07</td><td>~:0(<method 'join' of 'str' objects>)</td></tr><tr role=\"row\" class=\"odd\"><td>5/1</td><td class=\"sorting_1\">4.7e-05</td><td>4.7e-05</td><td>0.005812</td><td>0.005812</td><td><frozen importlib._bootstrap>:966(_find_and_load)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">4.2e-05</td><td>4.2e-05</td><td>0.002601</td><td>0.002601</td><td>hashlib.py:53(<module>)</td></tr><tr role=\"row\" class=\"odd\"><td>36</td><td class=\"sorting_1\">4.2e-05</td><td>1.167e-06</td><td>4.2e-05</td><td>1.167e-06</td><td>~:0(<built-in method builtins.getattr>)</td></tr><tr role=\"row\" class=\"even\"><td>44</td><td class=\"sorting_1\">4e-05</td><td>9.091e-07</td><td>4e-05</td><td>9.091e-07</td><td>~:0(<built-in method builtins.hasattr>)</td></tr><tr role=\"row\" class=\"odd\"><td>10</td><td class=\"sorting_1\">3.7e-05</td><td>3.7e-06</td><td>3.7e-05</td><td>3.7e-06</td><td>~:0(<built-in method posix.getcwd>)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">3.7e-05</td><td>7.4e-06</td><td>6e-05</td><td>1.2e-05</td><td><frozen importlib._bootstrap>:176(_get_module_lock)</td></tr><tr role=\"row\" class=\"odd\"><td>36</td><td class=\"sorting_1\">3.5e-05</td><td>9.722e-07</td><td>7.2e-05</td><td>2e-06</td><td><frozen importlib._bootstrap_external>:1064(_path_importer_cache)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">3.1e-05</td><td>6.2e-06</td><td>3.1e-05</td><td>6.2e-06</td><td><frozen importlib._bootstrap>:94(acquire)</td></tr><tr role=\"row\" class=\"odd\"><td>4</td><td class=\"sorting_1\">2.8e-05</td><td>7e-06</td><td>6.3e-05</td><td>1.575e-05</td><td><frozen importlib._bootstrap_external>:246(cache_from_source)</td></tr><tr role=\"row\" class=\"even\"><td>33</td><td class=\"sorting_1\">2.8e-05</td><td>8.485e-07</td><td>0.000257</td><td>7.788e-06</td><td><frozen importlib._bootstrap_external>:68(_path_stat)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">2.7e-05</td><td>5.4e-06</td><td>3.1e-05</td><td>6.2e-06</td><td><frozen importlib._bootstrap>:119(release)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">2.7e-05</td><td>1.35e-05</td><td>0.000468</td><td>0.000234</td><td><frozen importlib._bootstrap_external>:729(get_code)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">2.6e-05</td><td>5.2e-06</td><td>3.4e-05</td><td>6.8e-06</td><td><frozen importlib._bootstrap_external>:513(spec_from_file_location)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">2.6e-05</td><td>1.3e-05</td><td>3.7e-05</td><td>1.85e-05</td><td><frozen importlib._bootstrap_external>:419(_validate_bytecode_header)</td></tr><tr role=\"row\" class=\"odd\"><td>3</td><td class=\"sorting_1\">2.4e-05</td><td>8e-06</td><td>0.002375</td><td>0.0007917</td><td><frozen importlib._bootstrap_external>:903(create_module)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">2.4e-05</td><td>4.8e-06</td><td>4.5e-05</td><td>9e-06</td><td><frozen importlib._bootstrap>:321(__exit__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">2.4e-05</td><td>4.8e-06</td><td>0.000116</td><td>2.32e-05</td><td><frozen importlib._bootstrap>:163(__enter__)</td></tr><tr role=\"row\" class=\"even\"><td>6</td><td class=\"sorting_1\">2.3e-05</td><td>3.833e-06</td><td>3.1e-05</td><td>5.167e-06</td><td>hashlib.py:98(__get_openssl_constructor)</td></tr><tr role=\"row\" class=\"odd\"><td>5/1</td><td class=\"sorting_1\">2.2e-05</td><td>2.2e-05</td><td>0.005758</td><td>0.005758</td><td><frozen importlib._bootstrap>:939(_find_and_load_unlocked)</td></tr><tr role=\"row\" class=\"even\"><td>44</td><td class=\"sorting_1\">2.1e-05</td><td>4.773e-07</td><td>2.1e-05</td><td>4.773e-07</td><td>~:0(<method 'rpartition' of 'str' objects>)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">2.1e-05</td><td>1.05e-05</td><td>2.1e-05</td><td>1.05e-05</td><td>~:0(<method 'read' of '_io.FileIO' objects>)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">2e-05</td><td>2e-05</td><td>2e-05</td><td>2e-05</td><td>random.py:68(Random)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">2e-05</td><td>2e-05</td><td>0.000248</td><td>0.000248</td><td>random.py:93(seed)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">2e-05</td><td>4e-06</td><td>6.9e-05</td><td>1.38e-05</td><td><frozen importlib._bootstrap_external>:342(_get_cached)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">1.9e-05</td><td>3.8e-06</td><td>2.3e-05</td><td>4.6e-06</td><td><frozen importlib._bootstrap>:74(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.8e-05</td><td>3.6e-06</td><td>0.002584</td><td>0.0005168</td><td><frozen importlib._bootstrap>:570(module_from_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>8/1</td><td class=\"sorting_1\">1.7e-05</td><td>1.7e-05</td><td>0.005016</td><td>0.005016</td><td><frozen importlib._bootstrap>:214(_call_with_frames_removed)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.6e-05</td><td>3.2e-06</td><td>5.8e-05</td><td>1.16e-05</td><td><frozen importlib._bootstrap_external>:1210(_get_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1.6e-05</td><td>1.6e-05</td><td>1.6e-05</td><td>1.6e-05</td><td>~:0(<function Random.seed at 0x7f2a9c95e158>)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">1.4e-05</td><td>7e-06</td><td>0.000269</td><td>0.0001345</td><td><frozen importlib._bootstrap_external>:474(_compile_bytecode)</td></tr><tr role=\"row\" class=\"odd\"><td>7</td><td class=\"sorting_1\">1.3e-05</td><td>1.857e-06</td><td>8.2e-05</td><td>1.171e-05</td><td><frozen importlib._bootstrap>:406(cached)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.3e-05</td><td>2.6e-06</td><td>1.3e-05</td><td>2.6e-06</td><td>~:0(<built-in method _imp.is_builtin>)</td></tr><tr role=\"row\" class=\"odd\"><td>2/1</td><td class=\"sorting_1\">1.3e-05</td><td>1.3e-05</td><td>0.005325</td><td>0.005325</td><td><frozen importlib._bootstrap_external>:659(exec_module)</td></tr><tr role=\"row\" class=\"even\"><td>39</td><td class=\"sorting_1\">1.2e-05</td><td>3.077e-07</td><td>1.2e-05</td><td>3.077e-07</td><td>~:0(<built-in method builtins.isinstance>)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">1.2e-05</td><td>2.4e-06</td><td>1.2e-05</td><td>2.4e-06</td><td>~:0(<built-in method from_bytes>)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.1e-05</td><td>2.2e-06</td><td>0.001619</td><td>0.0003238</td><td><frozen importlib._bootstrap_external>:1133(find_spec)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1.1e-05</td><td>1.1e-05</td><td>1.1e-05</td><td>1.1e-05</td><td>~:0(<method 'union' of 'set' objects>)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1.1e-05</td><td>2.2e-06</td><td>4.5e-05</td><td>9e-06</td><td><frozen importlib._bootstrap_external>:78(_path_is_mode_type)</td></tr><tr role=\"row\" class=\"odd\"><td>8</td><td class=\"sorting_1\">1e-05</td><td>1.25e-06</td><td>3e-05</td><td>3.75e-06</td><td><frozen importlib._bootstrap>:996(_handle_fromlist)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">1e-05</td><td>1e-05</td><td>0.005825</td><td>0.005825</td><td>tree_tests.py:1(<module>)</td></tr><tr role=\"row\" class=\"odd\"><td>15</td><td class=\"sorting_1\">1e-05</td><td>6.667e-07</td><td>1.3e-05</td><td>8.667e-07</td><td><frozen importlib._bootstrap>:856(__exit__)</td></tr><tr role=\"row\" class=\"even\"><td>4</td><td class=\"sorting_1\">1e-05</td><td>2.5e-06</td><td>1.4e-05</td><td>3.5e-06</td><td><frozen importlib._bootstrap_external>:56(_path_split)</td></tr><tr role=\"row\" class=\"odd\"><td>8</td><td class=\"sorting_1\">1e-05</td><td>1.25e-06</td><td>1e-05</td><td>1.25e-06</td><td>~:0(<method 'endswith' of 'str' objects>)</td></tr><tr role=\"row\" class=\"even\"><td>15</td><td class=\"sorting_1\">1e-05</td><td>6.667e-07</td><td>1.4e-05</td><td>9.333e-07</td><td><frozen importlib._bootstrap>:852(__enter__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">1e-05</td><td>2e-06</td><td>1.4e-05</td><td>2.8e-06</td><td><frozen importlib._bootstrap>:419(parent)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">9e-06</td><td>1.8e-06</td><td>4e-05</td><td>8e-06</td><td><frozen importlib._bootstrap>:170(__exit__)</td></tr><tr role=\"row\" class=\"odd\"><td>20</td><td class=\"sorting_1\">9e-06</td><td>4.5e-07</td><td>9e-06</td><td>4.5e-07</td><td><frozen importlib._bootstrap>:324(<genexpr>)</td></tr><tr role=\"row\" class=\"even\"><td>3</td><td class=\"sorting_1\">9e-06</td><td>3e-06</td><td>2.1e-05</td><td>7e-06</td><td><frozen importlib._bootstrap_external>:911(exec_module)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>8e-06</td><td>1.6e-06</td><td><frozen importlib._bootstrap>:314(__enter__)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>5.3e-05</td><td>1.06e-05</td><td><frozen importlib._bootstrap_external>:87(_path_isfile)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>2.1e-05</td><td>4.2e-06</td><td><frozen importlib._bootstrap>:716(find_spec)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>8e-06</td><td>1.6e-06</td><td><frozen importlib._bootstrap>:372(__init__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>8e-06</td><td>1.6e-06</td><td><frozen importlib._bootstrap>:159(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">8e-06</td><td>1.6e-06</td><td>1.7e-05</td><td>3.4e-06</td><td>~:0(<built-in method builtins.any>)</td></tr><tr role=\"row\" class=\"odd\"><td>3/1</td><td class=\"sorting_1\">7e-06</td><td>7e-06</td><td>0.005827</td><td>0.005827</td><td>~:0(<built-in method builtins.exec>)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">7e-06</td><td>7e-06</td><td>7e-06</td><td>7e-06</td><td>random.py:639(SystemRandom)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">7e-06</td><td>1.4e-06</td><td>1.2e-05</td><td>2.4e-06</td><td><frozen importlib._bootstrap>:789(find_spec)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">6e-06</td><td>3e-06</td><td>1.9e-05</td><td>9.5e-06</td><td><frozen importlib._bootstrap_external>:826(path_stats)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">6e-06</td><td>1.2e-06</td><td>6e-06</td><td>1.2e-06</td><td><frozen importlib._bootstrap>:310(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>4</td><td class=\"sorting_1\">6e-06</td><td>1.5e-06</td><td>1e-05</td><td>2.5e-06</td><td><frozen importlib._bootstrap_external>:45(_r_long)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">5e-06</td><td>2.5e-06</td><td>5e-06</td><td>2.5e-06</td><td><frozen importlib._bootstrap>:35(_new_module)</td></tr><tr role=\"row\" class=\"even\"><td>3</td><td class=\"sorting_1\">5e-06</td><td>1.667e-06</td><td>5e-06</td><td>1.667e-06</td><td><frozen importlib._bootstrap_external>:892(__init__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">5e-06</td><td>1e-06</td><td>5e-06</td><td>1e-06</td><td>~:0(<built-in method _imp.is_frozen>)</td></tr><tr role=\"row\" class=\"even\"><td>26</td><td class=\"sorting_1\">5e-06</td><td>1.923e-07</td><td>5e-06</td><td>1.923e-07</td><td><frozen importlib._bootstrap_external>:34(_relax_case)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">5e-06</td><td>2.5e-06</td><td>5e-06</td><td>2.5e-06</td><td>~:0(<built-in method _imp._fix_co_filename>)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">4e-06</td><td>2e-06</td><td>5e-06</td><td>2.5e-06</td><td><frozen importlib._bootstrap_external>:382(_check_name_wrapper)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">4e-06</td><td>8e-07</td><td>4e-06</td><td>8e-07</td><td><frozen importlib._bootstrap>:225(_verbose_message)</td></tr><tr role=\"row\" class=\"even\"><td>3</td><td class=\"sorting_1\">4e-06</td><td>1.333e-06</td><td>4e-06</td><td>1.333e-06</td><td>~:0(<built-in method _imp.exec_dynamic>)</td></tr><tr role=\"row\" class=\"odd\"><td>15</td><td class=\"sorting_1\">4e-06</td><td>2.667e-07</td><td>4e-06</td><td>2.667e-07</td><td>~:0(<built-in method _imp.acquire_lock>)</td></tr><tr role=\"row\" class=\"even\"><td>10</td><td class=\"sorting_1\">4e-06</td><td>4e-07</td><td>4e-06</td><td>4e-07</td><td>~:0(<built-in method _thread.allocate_lock>)</td></tr><tr role=\"row\" class=\"odd\"><td>10</td><td class=\"sorting_1\">4e-06</td><td>4e-07</td><td>4e-06</td><td>4e-07</td><td>~:0(<built-in method _thread.get_ident>)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">4e-06</td><td>4e-06</td><td>0.000252</td><td>0.000252</td><td>random.py:84(__init__)</td></tr><tr role=\"row\" class=\"odd\"><td>5</td><td class=\"sorting_1\">4e-06</td><td>8e-07</td><td>4e-06</td><td>8e-07</td><td><frozen importlib._bootstrap>:190(cb)</td></tr><tr role=\"row\" class=\"even\"><td>20</td><td class=\"sorting_1\">4e-06</td><td>2e-07</td><td>4e-06</td><td>2e-07</td><td>~:0(<built-in method _imp.release_lock>)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">3e-06</td><td>3e-06</td><td>3e-06</td><td>3e-06</td><td>tree_tests.py:3(test)</td></tr><tr role=\"row\" class=\"even\"><td>8</td><td class=\"sorting_1\">3e-06</td><td>3.75e-07</td><td>3e-06</td><td>3.75e-07</td><td>~:0(<built-in method builtins.len>)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">3e-06</td><td>1.5e-06</td><td>3e-06</td><td>1.5e-06</td><td><frozen importlib._bootstrap_external>:786(__init__)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">3e-06</td><td>3e-06</td><td>3e-06</td><td>3e-06</td><td>~:0(<built-in method math.exp>)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">2e-06</td><td>1e-06</td><td>2e-06</td><td>1e-06</td><td>~:0(<built-in method math.log>)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">2e-06</td><td>2e-06</td><td>2e-06</td><td>2e-06</td><td>~:0(<built-in method _hashlib.openssl_md5>)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(<built-in method _hashlib.openssl_sha256>)</td></tr><tr role=\"row\" class=\"even\"><td>5</td><td class=\"sorting_1\">1e-06</td><td>2e-07</td><td>1e-06</td><td>2e-07</td><td><frozen importlib._bootstrap>:427(has_location)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(<built-in method _hashlib.openssl_sha384>)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(<built-in method _hashlib.openssl_sha224>)</td></tr><tr role=\"row\" class=\"odd\"><td>2</td><td class=\"sorting_1\">1e-06</td><td>5e-07</td><td>1e-06</td><td>5e-07</td><td><frozen importlib._bootstrap_external>:811(get_filename)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">1e-06</td><td>1e-06</td><td>1e-06</td><td>1e-06</td><td>~:0(<built-in method math.sqrt>)</td></tr><tr role=\"row\" class=\"odd\"><td>6</td><td class=\"sorting_1\">1e-06</td><td>1.667e-07</td><td>1e-06</td><td>1.667e-07</td><td>~:0(<built-in method builtins.globals>)</td></tr><tr role=\"row\" class=\"even\"><td>2</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td><frozen importlib._bootstrap_external>:656(create_module)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>~:0(<method 'disable' of '_lsprof.Profiler' objects>)</td></tr><tr role=\"row\" class=\"even\"><td>1</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>~:0(<built-in method _hashlib.openssl_sha512>)</td></tr><tr role=\"row\" class=\"odd\"><td>1</td><td class=\"sorting_1\">0</td><td>0</td><td>0</td><td>0</td><td>~:0(<built-in method _hashlib.openssl_sha1>)</td></tr></tbody></table><div class=\"dataTables_info\" id=\"pstats-table_info\" role=\"status\" aria-live=\"polite\">Showing 1 to 109 of 109 entries</div></div>\n", | |
| "</div>\n", | |
| "<!-- Le javascript\n", | |
| "================================================== -->\n", | |
| "<!-- Placed at the end of the document so the pages load faster -->\n", | |
| "<!-- Vendor JS -->\n", | |
| "<script src=\"tree_tests_files/jquery-1.js\"></script>\n", | |
| "<script src=\"tree_tests_files/d3.js\"></script>\n", | |
| "<script src=\"tree_tests_files/jquery.js\"></script>\n", | |
| "<script src=\"tree_tests_files/lodash.js\"></script>\n", | |
| "<script src=\"tree_tests_files/immutable.js\"></script>\n", | |
| "<!-- SnakeViz JS -->\n", | |
| "<script>\n", | |
| "// Make the stats table\n", | |
| "var table_data = [[['5', 5], '1.1e-05', '2.2e-06', '0.001619', '0.0003238', '<frozen importlib._bootstrap_external>:1133(find_spec)'], [['2', 2], '5e-06', '2.5e-06', '5e-06', '2.5e-06', '<frozen importlib._bootstrap>:35(_new_module)'], [['256', 256], '8.5e-05', '3.32e-07', '8.5e-05', '3.32e-07', '~:0(<method 'rstrip' of 'str' objects>)'], [['8', 8], '1e-05', '1.25e-06', '3e-05', '3.75e-06', '<frozen importlib._bootstrap>:996(_handle_fromlist)'], [['5', 5], '2.7e-05', '5.4e-06', '3.1e-05', '6.2e-06', '<frozen importlib._bootstrap>:119(release)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(<built-in method _hashlib.openssl_sha256>)'], [['1', 1], '3e-06', '3e-06', '3e-06', '3e-06', 'tree_tests.py:3(test)'], [['2', 2], '2.7e-05', '1.35e-05', '0.000468', '0.000234', '<frozen importlib._bootstrap_external>:729(get_code)'], [['36', 36], '3.5e-05', '9.722e-07', '7.2e-05', '2e-06', '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)'], [['2', 2], '0', '0', '0', '0', '<frozen importlib._bootstrap_external>:656(create_module)'], [['5', 5], '9e-06', '1.8e-06', '4e-05', '8e-06', '<frozen importlib._bootstrap>:170(__exit__)'], [['2', 2], '4e-06', '2e-06', '5e-06', '2.5e-06', '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)'], [['33', 33], '0.000229', '6.939e-06', '0.000229', '6.939e-06', '~:0(<built-in method posix.stat>)'], [['122', 122], '0.000132', '1.082e-06', '0.000132', '1.082e-06', '~:0(<method 'format' of 'str' objects>)'], [['2', 2], '6e-06', '3e-06', '1.9e-05', '9.5e-06', '<frozen importlib._bootstrap_external>:826(path_stats)'], [['8', 8], '3e-06', '3.75e-07', '3e-06', '3.75e-07', '~:0(<built-in method builtins.len>)'], [['1', 1], '1e-05', '1e-05', '0.005825', '0.005825', 'tree_tests.py:1(<module>)'], [['5', 5], '4e-06', '8e-07', '4e-06', '8e-07', '<frozen importlib._bootstrap>:225(_verbose_message)'], [['3', 3], '2.4e-05', '8e-06', '0.002375', '0.0007917', '<frozen importlib._bootstrap_external>:903(create_module)'], [['3', 3], '4e-06', '1.333e-06', '4e-06', '1.333e-06', '~:0(<built-in method _imp.exec_dynamic>)'], [['6', 6], '2.3e-05', '3.833e-06', '3.1e-05', '5.167e-06', 'hashlib.py:98(__get_openssl_constructor)'], [['5', 5], '1e-06', '2e-07', '1e-06', '2e-07', '<frozen importlib._bootstrap>:427(has_location)'], [['8/1', 8], '1.7e-05', '1.7e-05', '0.005016', '0.005016', '<frozen importlib._bootstrap>:214(_call_with_frames_removed)'], [['3', 3], '0.002335', '0.0007783', '0.002335', '0.0007783', '~:0(<built-in method _imp.create_dynamic>)'], [['5', 5], '9.3e-05', '1.86e-05', '0.001608', '0.0003216', '<frozen importlib._bootstrap_external>:1101(_get_spec)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(<built-in method _hashlib.openssl_sha384>)'], [['2', 2], '6.4e-05', '3.2e-05', '8.5e-05', '4.25e-05', '<frozen importlib._bootstrap_external>:816(get_data)'], [['5', 5], '8e-06', '1.6e-06', '8e-06', '1.6e-06', '<frozen importlib._bootstrap>:314(__enter__)'], [['15', 15], '1e-05', '6.667e-07', '1.3e-05', '8.667e-07', '<frozen importlib._bootstrap>:856(__exit__)'], [['5', 5], '8e-06', '1.6e-06', '5.3e-05', '1.06e-05', '<frozen importlib._bootstrap_external>:87(_path_isfile)'], [['1', 1], '0.000101', '0.000101', '0.005012', '0.005012', 'random.py:37(<module>)'], [['5', 5], '1.8e-05', '3.6e-06', '0.002584', '0.0005168', '<frozen importlib._bootstrap>:570(module_from_spec)'], [['5', 5], '4.9e-05', '9.8e-06', '0.000185', '3.7e-05', '<frozen importlib._bootstrap>:510(_init_module_attrs)'], [['7', 7], '1.3e-05', '1.857e-06', '8.2e-05', '1.171e-05', '<frozen importlib._bootstrap>:406(cached)'], [['1', 1], '4.2e-05', '4.2e-05', '0.002601', '0.002601', 'hashlib.py:53(<module>)'], [['1', 1], '0', '0', '0', '0', '~:0(<method 'disable' of '_lsprof.Profiler' objects>)'], [['2', 2], '0.000246', '0.000123', '0.000246', '0.000123', '~:0(<built-in method marshal.loads>)'], [['2', 2], '0.000101', '5.05e-05', '0.000128', '6.4e-05', '~:0(<built-in method builtins.__build_class__>)'], [['5', 5], '1.3e-05', '2.6e-06', '1.3e-05', '2.6e-06', '~:0(<built-in method _imp.is_builtin>)'], [['3', 3], '5e-06', '1.667e-06', '5e-06', '1.667e-06', '<frozen importlib._bootstrap_external>:892(__init__)'], [['3/1', 3], '7e-06', '7e-06', '0.005827', '0.005827', '~:0(<built-in method builtins.exec>)'], [['126', 126], '0.000168', '1.333e-06', '0.000467', '3.706e-06', '<frozen importlib._bootstrap_external>:50(_path_join)'], [['5', 5], '2.4e-05', '4.8e-06', '4.5e-05', '9e-06', '<frozen importlib._bootstrap>:321(__exit__)'], [['5', 5], '8e-06', '1.6e-06', '2.1e-05', '4.2e-06', '<frozen importlib._bootstrap>:716(find_spec)'], [['5', 5], '1.9e-05', '3.8e-06', '2.3e-05', '4.6e-06', '<frozen importlib._bootstrap>:74(__init__)'], [['5', 5], '8e-06', '1.6e-06', '8e-06', '1.6e-06', '<frozen importlib._bootstrap>:372(__init__)'], [['26', 26], '0.00043', '1.654e-05', '0.001418', '5.454e-05', '<frozen importlib._bootstrap_external>:1215(find_spec)'], [['1', 1], '0', '0', '0', '0', '~:0(<built-in method _hashlib.openssl_sha512>)'], [['4', 4], '2.8e-05', '7e-06', '6.3e-05', '1.575e-05', '<frozen importlib._bootstrap_external>:246(cache_from_source)'], [['5', 5], '1.6e-05', '3.2e-06', '5.8e-05', '1.16e-05', '<frozen importlib._bootstrap_external>:1210(_get_spec)'], [['5', 5], '6e-06', '1.2e-06', '6e-06', '1.2e-06', '<frozen importlib._bootstrap>:310(__init__)'], [['1', 1], '7e-06', '7e-06', '7e-06', '7e-06', 'random.py:639(SystemRandom)'], [['2', 2], '2e-06', '1e-06', '2e-06', '1e-06', '~:0(<built-in method math.log>)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(<built-in method _hashlib.openssl_sha224>)'], [['5', 5], '8e-06', '1.6e-06', '8e-06', '1.6e-06', '<frozen importlib._bootstrap>:159(__init__)'], [['44', 44], '2.1e-05', '4.773e-07', '2.1e-05', '4.773e-07', '~:0(<method 'rpartition' of 'str' objects>)'], [['44', 44], '4e-05', '9.091e-07', '4e-05', '9.091e-07', '~:0(<built-in method builtins.hasattr>)'], [['15', 15], '4e-06', '2.667e-07', '4e-06', '2.667e-07', '~:0(<built-in method _imp.acquire_lock>)'], [['2', 2], '1e-06', '5e-07', '1e-06', '5e-07', '<frozen importlib._bootstrap_external>:811(get_filename)'], [['33', 33], '2.8e-05', '8.485e-07', '0.000257', '7.788e-06', '<frozen importlib._bootstrap_external>:68(_path_stat)'], [['1', 1], '1.6e-05', '1.6e-05', '1.6e-05', '1.6e-05', '~:0(<function Random.seed at 0x7f2a9c95e158>)'], [['10', 10], '3.7e-05', '3.7e-06', '3.7e-05', '3.7e-06', '~:0(<built-in method posix.getcwd>)'], [['5', 5], '2.6e-05', '5.2e-06', '3.4e-05', '6.8e-06', '<frozen importlib._bootstrap_external>:513(spec_from_file_location)'], [['36', 36], '4.2e-05', '1.167e-06', '4.2e-05', '1.167e-06', '~:0(<built-in method builtins.getattr>)'], [['1', 1], '1.1e-05', '1.1e-05', '1.1e-05', '1.1e-05', '~:0(<method 'union' of 'set' objects>)'], [['4', 4], '1e-05', '2.5e-06', '1.4e-05', '3.5e-06', '<frozen importlib._bootstrap_external>:56(_path_split)'], [['20', 20], '9e-06', '4.5e-07', '9e-06', '4.5e-07', '<frozen importlib._bootstrap>:324(<genexpr>)'], [['5', 5], '1.1e-05', '2.2e-06', '4.5e-05', '9e-06', '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)'], [['1', 1], '2e-05', '2e-05', '2e-05', '2e-05', 'random.py:68(Random)'], [['39', 39], '1.2e-05', '3.077e-07', '1.2e-05', '3.077e-07', '~:0(<built-in method builtins.isinstance>)'], [['8', 8], '1e-05', '1.25e-06', '1e-05', '1.25e-06', '~:0(<method 'endswith' of 'str' objects>)'], [['5', 5], '8e-06', '1.6e-06', '1.7e-05', '3.4e-06', '~:0(<built-in method builtins.any>)'], [['5', 5], '8.4e-05', '1.68e-05', '0.001763', '0.0003526', '<frozen importlib._bootstrap>:879(_find_spec)'], [['132', 132], '8.7e-05', '6.591e-07', '8.7e-05', '6.591e-07', '<frozen importlib._bootstrap_external>:366(_verbose_message)'], [['1', 1], '0.000202', '0.000202', '0.000202', '0.000202', '~:0(<built-in method posix.urandom>)'], [['5', 5], '5e-06', '1e-06', '5e-06', '1e-06', '~:0(<built-in method _imp.is_frozen>)'], [['5', 5], '3.1e-05', '6.2e-06', '3.1e-05', '6.2e-06', '<frozen importlib._bootstrap>:94(acquire)'], [['10', 10], '4e-06', '4e-07', '4e-06', '4e-07', '~:0(<built-in method _thread.allocate_lock>)'], [['10', 10], '4e-06', '4e-07', '4e-06', '4e-07', '~:0(<built-in method _thread.get_ident>)'], [['26', 26], '5e-06', '1.923e-07', '5e-06', '1.923e-07', '<frozen importlib._bootstrap_external>:34(_relax_case)'], [['1', 1], '4e-06', '4e-06', '0.000252', '0.000252', 'random.py:84(__init__)'], [['1', 1], '0', '0', '0', '0', '~:0(<built-in method _hashlib.openssl_sha1>)'], [['2', 2], '3e-06', '1.5e-06', '3e-06', '1.5e-06', '<frozen importlib._bootstrap_external>:786(__init__)'], [['5', 5], '1.2e-05', '2.4e-06', '1.2e-05', '2.4e-06', '~:0(<built-in method from_bytes>)'], [['5', 5], '4e-06', '8e-07', '4e-06', '8e-07', '<frozen importlib._bootstrap>:190(cb)'], [['5', 5], '3.7e-05', '7.4e-06', '6e-05', '1.2e-05', '<frozen importlib._bootstrap>:176(_get_module_lock)'], [['126', 126], '0.000166', '1.317e-06', '0.000251', '1.992e-06', '<frozen importlib._bootstrap_external>:52(<listcomp>)'], [['5/1', 5], '5e-05', '5e-05', '0.005413', '0.005413', '<frozen importlib._bootstrap>:659(_load_unlocked)'], [['2', 2], '2.6e-05', '1.3e-05', '3.7e-05', '1.85e-05', '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)'], [['5/1', 5], '2.2e-05', '2.2e-05', '0.005758', '0.005758', '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)'], [['1', 1], '2e-05', '2e-05', '0.000248', '0.000248', 'random.py:93(seed)'], [['2', 2], '1.4e-05', '7e-06', '0.000269', '0.0001345', '<frozen importlib._bootstrap_external>:474(_compile_bytecode)'], [['15', 15], '1e-05', '6.667e-07', '1.4e-05', '9.333e-07', '<frozen importlib._bootstrap>:852(__enter__)'], [['2', 2], '5e-06', '2.5e-06', '5e-06', '2.5e-06', '~:0(<built-in method _imp._fix_co_filename>)'], [['130', 130], '4.9e-05', '3.769e-07', '4.9e-05', '3.769e-07', '~:0(<method 'join' of 'str' objects>)'], [['1', 1], '1e-06', '1e-06', '1e-06', '1e-06', '~:0(<built-in method math.sqrt>)'], [['1', 1], '3e-06', '3e-06', '3e-06', '3e-06', '~:0(<built-in method math.exp>)'], [['3', 3], '9e-06', '3e-06', '2.1e-05', '7e-06', '<frozen importlib._bootstrap_external>:911(exec_module)'], [['5', 5], '7e-06', '1.4e-06', '1.2e-05', '2.4e-06', '<frozen importlib._bootstrap>:789(find_spec)'], [['6', 6], '1e-06', '1.667e-07', '1e-06', '1.667e-07', '~:0(<built-in method builtins.globals>)'], [['4', 4], '6e-06', '1.5e-06', '1e-05', '2.5e-06', '<frozen importlib._bootstrap_external>:45(_r_long)'], [['5', 5], '2.4e-05', '4.8e-06', '0.000116', '2.32e-05', '<frozen importlib._bootstrap>:163(__enter__)'], [['1', 1], '2e-06', '2e-06', '2e-06', '2e-06', '~:0(<built-in method _hashlib.openssl_md5>)'], [['2/1', 2], '1.3e-05', '1.3e-05', '0.005325', '0.005325', '<frozen importlib._bootstrap_external>:659(exec_module)'], [['5/1', 5], '4.7e-05', '4.7e-05', '0.005812', '0.005812', '<frozen importlib._bootstrap>:966(_find_and_load)'], [['5', 5], '1e-05', '2e-06', '1.4e-05', '2.8e-06', '<frozen importlib._bootstrap>:419(parent)'], [['2', 2], '2.1e-05', '1.05e-05', '2.1e-05', '1.05e-05', '~:0(<method 'read' of '_io.FileIO' objects>)'], [['20', 20], '4e-06', '2e-07', '4e-06', '2e-07', '~:0(<built-in method _imp.release_lock>)'], [['5', 5], '2e-05', '4e-06', '6.9e-05', '1.38e-05', '<frozen importlib._bootstrap_external>:342(_get_cached)']];\n", | |
| "$(document).ready(function() {\n", | |
| "$('#pstats-table').dataTable({\n", | |
| "'data': table_data,\n", | |
| "'columns': [\n", | |
| "{'title': 'ncalls', 'type': 'num', 'searchable': 'false',\n", | |
| "'data': {\n", | |
| "'_': function (row) {return row[0][0];},\n", | |
| "'sort': function (row) {return row[0][1]}\n", | |
| "}},\n", | |
| "{'title': 'tottime', 'type': 'num', 'searchable': 'false'},\n", | |
| "{'title': 'percall', 'type': 'num', 'searchable': 'false'},\n", | |
| "{'title': 'cumtime', 'type': 'num', 'searchable': 'false'},\n", | |
| "{'title': 'percall', 'type': 'num', 'searchable': 'false'},\n", | |
| "{'title': 'filename:lineno(function)'}\n", | |
| "],\n", | |
| "'order': [1, 'desc'],\n", | |
| "'paging': false\n", | |
| "});\n", | |
| "});\n", | |
| "</script>\n", | |
| "<!-- Web worker code for generating D3 JSON in a separate thread -->\n", | |
| "<script id=\"hierarchy-worker\" type=\"javascript/worker\">\n", | |
| "// This will all go into a web worker that will be used to generate\n", | |
| "// the visualization JSON while leaving the rest of the app responsive.\n", | |
| "//\n", | |
| "// We put this here instead of in a separate JS file so that the worker\n", | |
| "// can be stopped and restarted without loading the code from the server,\n", | |
| "// and so that the stats data can be embedded in the worker.\n", | |
| "var stats = {'<frozen importlib._bootstrap_external>:1101(_get_spec)': {'stats': [5, 5, 9.3e-05, 0.0016079999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'children': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 0.00043, 0.001418], '~:0(<built-in method builtins.hasattr>)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [36, 36, 3.5e-05, 7.2e-05], '~:0(<built-in method builtins.isinstance>)': [36, 36, 9e-06, 9e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1101(_get_spec)'}, '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': {'stats': [36, 36, 3.5e-05, 7.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 3.5e-05, 7.2e-05]}, 'children': {'~:0(<built-in method posix.getcwd>)': [10, 10, 3.7e-05, 3.7e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)'}, '~:0(<built-in method builtins.isinstance>)': {'stats': [39, 39, 1.2e-05, 1.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 9e-06, 9e-06], '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.isinstance>)'}, 'tree_tests.py:3(test)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'tree_tests.py:1(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': 'tree_tests.py:3(test)'}, '~:0(<built-in method builtins.hasattr>)': {'stats': [44, 44, 3.9999999999999996e-05, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 3e-06, 3e-06], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.hasattr>)'}, \"~:0(<method 'join' of 'str' objects>)\": {'stats': [130, 130, 4.9e-05, 4.9e-05], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 4.8e-05, 4.8e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 1e-06, 1e-06]}, 'children': {}, 'display_name': \"~:0(<method 'join' of 'str' objects>)\"}, \"~:0(<method 'endswith' of 'str' objects>)\": {'stats': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06]}, 'children': {}, 'display_name': \"~:0(<method 'endswith' of 'str' objects>)\"}, '<frozen importlib._bootstrap_external>:656(create_module)': {'stats': [2, 2, 0.0, 0.0], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 0.0, 0.0]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:656(create_module)'}, '<frozen importlib._bootstrap_external>:659(exec_module)': {'stats': [1, 2, 1.3e-05, 0.005325], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [2, 1, 1.3e-05, 0.005325]}, 'children': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.7e-05, 0.000468], '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 2e-06, 0.005016]}, 'display_name': '<frozen importlib._bootstrap_external>:659(exec_module)'}, '<frozen importlib._bootstrap>:74(__init__)': {'stats': [5, 5, 1.8999999999999998e-05, 2.3e-05], 'callers': {'<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'children': {'~:0(<built-in method _thread.allocate_lock>)': [10, 10, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:74(__init__)'}, '~:0(<built-in method _hashlib.openssl_sha512>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha512>)'}, '<frozen importlib._bootstrap>:119(release)': {'stats': [5, 5, 2.7e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 2.7e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:119(release)'}, '~:0(<built-in method math.sqrt>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.sqrt>)'}, '<frozen importlib._bootstrap_external>:892(__init__)': {'stats': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:892(__init__)'}, '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': {'stats': [1, 1, 1.9999999999999998e-05, 0.000248], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'children': {'~:0(<function Random.seed at 0x7f2a9c95e158>)': [1, 1, 1.6e-05, 1.6e-05], '~:0(<built-in method from_bytes>)': [1, 1, 8e-06, 8e-06], '~:0(<built-in method posix.urandom>)': [1, 1, 0.000202, 0.000202], '~:0(<built-in method builtins.isinstance>)': [1, 1, 2e-06, 2e-06]}, 'display_name': 'random.py:93(seed)'}, '<frozen importlib._bootstrap_external>:246(cache_from_source)': {'stats': [4, 4, 2.8e-05, 6.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [2, 2, 1.9999999999999998e-05, 3.9e-05], '<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 8e-06, 2.4e-05]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [4, 4, 4.9999999999999996e-06, 1.8e-05], \"~:0(<method 'join' of 'str' objects>)\": [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 9.999999999999999e-06, 1.4e-05], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:246(cache_from_source)'}, '<frozen importlib._bootstrap_external>:1210(_get_spec)': {'stats': [5, 5, 1.6e-05, 5.8e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 1.6e-05, 5.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:892(__init__)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 2.6e-05, 3.4e-05], '<frozen importlib._bootstrap_external>:786(__init__)': [2, 2, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1210(_get_spec)'}, '<frozen importlib._bootstrap>:856(__exit__)': {'stats': [15, 15, 9.999999999999999e-06, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.3e-05]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [15, 15, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:856(__exit__)'}, '~:0(<built-in method _imp.acquire_lock>)': {'stats': [15, 15, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.acquire_lock>)'}, '~:0(<built-in method posix.getcwd>)': {'stats': [10, 10, 3.7e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [10, 10, 3.7e-05, 3.7e-05]}, 'children': {}, 'display_name': '~:0(<built-in method posix.getcwd>)'}, '~:0(<built-in method _imp.exec_dynamic>)': {'stats': [3, 3, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.exec_dynamic>)'}, '<frozen importlib._bootstrap>:35(_new_module)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:35(_new_module)'}, '~:0(<built-in method math.exp>)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.exp>)'}, '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': {'stats': [1, 5, 2.2e-05, 0.005758], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 1, 2.2e-05, 0.005758]}, 'children': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8.4e-05, 0.001763], \"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'display_name': '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)'}, '<frozen importlib._bootstrap_external>:786(__init__)': {'stats': [2, 2, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [2, 2, 3e-06, 3e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:786(__init__)'}, '<frozen importlib._bootstrap>:879(_find_spec)': {'stats': [5, 5, 8.4e-05, 0.001763], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 8.4e-05, 0.001763]}, 'children': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 9.999999999999999e-06, 1.3e-05], '<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 9.999999999999999e-06, 1.4e-05], '<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 7e-06, 1.2e-05], '<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 8e-06, 2.1e-05], '<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'display_name': '<frozen importlib._bootstrap>:879(_find_spec)'}, \"~:0(<method 'union' of 'set' objects>)\": {'stats': [1, 1, 1.1e-05, 1.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 1.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'union' of 'set' objects>)\"}, '<frozen importlib._bootstrap>:852(__enter__)': {'stats': [15, 15, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method _imp.acquire_lock>)': [15, 15, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:852(__enter__)'}, '<frozen importlib._bootstrap>:314(__enter__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:314(__enter__)'}, '<frozen importlib._bootstrap>:419(parent)': {'stats': [5, 5, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 9.999999999999999e-06, 1.4e-05]}, 'children': {\"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:419(parent)'}, '<frozen importlib._bootstrap_external>:1133(find_spec)': {'stats': [5, 5, 1.1e-05, 0.001619], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'children': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1133(find_spec)'}, '<frozen importlib._bootstrap>:996(_handle_fromlist)': {'stats': [8, 8, 9.999999999999999e-06, 2.9999999999999997e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [7, 7, 9e-06, 2.6e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1e-06, 4e-06]}, 'children': {'~:0(<built-in method builtins.hasattr>)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '<frozen importlib._bootstrap>:996(_handle_fromlist)'}, '<frozen importlib._bootstrap_external>:729(get_code)': {'stats': [2, 2, 2.7e-05, 0.000468], 'callers': {'<frozen importlib._bootstrap_external>:659(exec_module)': [2, 2, 2.7e-05, 0.000468]}, 'children': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 4e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 6.4e-05, 8.499999999999999e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 6e-06, 1.8999999999999998e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 8e-06, 2.4e-05], '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [2, 2, 2.6e-05, 3.7e-05], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1.4e-05, 0.000269], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:729(get_code)'}, '<frozen importlib._bootstrap>:170(__exit__)': {'stats': [5, 5, 9e-06, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 9e-06, 3.9999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:119(release)': [5, 5, 2.7e-05, 3.1e-05]}, 'display_name': '<frozen importlib._bootstrap>:170(__exit__)'}, '<frozen importlib._bootstrap_external>:911(exec_module)': {'stats': [3, 3, 9e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [3, 3, 9e-06, 2.1e-05]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:911(exec_module)'}, '<frozen importlib._bootstrap>:427(has_location)': {'stats': [5, 5, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:427(has_location)'}, '~:0(<function Random.seed at 0x7f2a9c95e158>)': {'stats': [1, 1, 1.6e-05, 1.6e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.6e-05, 1.6e-05]}, 'children': {}, 'display_name': '~:0(<function Random.seed at 0x7f2a9c95e158>)'}, '~:0(<built-in method builtins.len>)': {'stats': [8, 8, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.len>)'}, '<frozen importlib._bootstrap>:310(__init__)': {'stats': [5, 5, 6e-06, 6e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 6e-06, 6e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:310(__init__)'}, '~:0(<built-in method builtins.any>)': {'stats': [5, 5, 8e-06, 1.7e-05], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 8e-06, 1.7e-05]}, 'children': {'<frozen importlib._bootstrap>:324(<genexpr>)': [20, 20, 9e-06, 9e-06]}, 'display_name': '~:0(<built-in method builtins.any>)'}, '~:0(<built-in method _hashlib.openssl_sha384>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha384>)'}, '<frozen importlib._bootstrap>:159(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:159(__init__)'}, '<frozen importlib._bootstrap>:659(_load_unlocked)': {'stats': [1, 5, 4.9999999999999996e-05, 0.005412999999999999], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'children': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 9e-06, 2.1e-05], '<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 2.4e-05, 4.4999999999999996e-05], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1.8e-05, 0.002584], '<frozen importlib._bootstrap>:314(__enter__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 1.3e-05, 0.005325], '<frozen importlib._bootstrap>:310(__init__)': [5, 5, 6e-06, 6e-06], '~:0(<built-in method builtins.hasattr>)': [5, 5, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:659(_load_unlocked)'}, '<frozen importlib._bootstrap_external>:342(_get_cached)': {'stats': [5, 5, 1.9999999999999998e-05, 6.9e-05], 'callers': {'<frozen importlib._bootstrap>:406(cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'children': {\"~:0(<method 'endswith' of 'str' objects>)\": [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 1.9999999999999998e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:342(_get_cached)'}, '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': {'stats': [2, 2, 1.4e-05, 0.000269], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 1.4e-05, 0.000269]}, 'children': {'<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 3e-06, 3e-06], '~:0(<built-in method marshal.loads>)': [2, 2, 0.00024599999999999996, 0.00024599999999999996], '~:0(<built-in method _imp._fix_co_filename>)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '~:0(<built-in method builtins.isinstance>)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:474(_compile_bytecode)'}, '<frozen importlib._bootstrap>:406(cached)': {'stats': [7, 7, 1.3e-05, 8.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [7, 7, 1.3e-05, 8.2e-05]}, 'children': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:406(cached)'}, '<frozen importlib._bootstrap_external>:366(_verbose_message)': {'stats': [132, 132, 8.7e-05, 8.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 7e-06, 7e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 3e-06, 3e-06], '<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 2e-06, 2e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:366(_verbose_message)'}, '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': {'stats': [2, 2, 2.6e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.6e-05, 3.7e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)'}, '~:0(<built-in method from_bytes>)': {'stats': [5, 5, 1.2e-05, 1.2e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method from_bytes>)'}, '~:0(<built-in method math.log>)': {'stats': [2, 2, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.log>)'}, '<frozen importlib._bootstrap_external>:34(_relax_case)': {'stats': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:34(_relax_case)'}, '~:0(<built-in method _hashlib.openssl_sha224>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha224>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': {'stats': [1, 1, 0.000101, 0.005012], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 0.000101, 0.005012]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 4e-06, 0.000252], '~:0(<built-in method math.log>)': [2, 2, 2e-06, 2e-06], '~:0(<built-in method builtins.__build_class__>)': [2, 2, 0.000101, 0.000128], '<frozen importlib._bootstrap>:966(_find_and_load)': [3, 3, 2.6e-05, 0.0044989999999999995], '~:0(<built-in method math.exp>)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [7, 7, 9e-06, 2.6e-05], '~:0(<built-in method math.sqrt>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'random.py:37(<module>)'}, '~:0(<built-in method _hashlib.openssl_sha256>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha256>)'}, '<frozen importlib._bootstrap_external>:52(<listcomp>)': {'stats': [126, 126, 0.000166, 0.000251], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 0.000166, 0.000251]}, 'children': {\"~:0(<method 'rstrip' of 'str' objects>)\": [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:52(<listcomp>)'}, '<frozen importlib._bootstrap>:570(module_from_spec)': {'stats': [5, 5, 1.8e-05, 0.002584], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 1.8e-05, 0.002584]}, 'children': {'<frozen importlib._bootstrap_external>:656(create_module)': [2, 2, 0.0, 0.0], '~:0(<built-in method builtins.hasattr>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:35(_new_module)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 2.4e-05, 0.002375], '<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 4.9e-05, 0.000185]}, 'display_name': '<frozen importlib._bootstrap>:570(module_from_spec)'}, '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': {'stats': [5, 5, 1.1e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [5, 5, 4.9999999999999996e-06, 3.4e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)'}, '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': {'stats': [2, 2, 4e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 4e-06, 4.9999999999999996e-06]}, 'children': {'<frozen importlib._bootstrap_external>:811(get_filename)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)'}, '<frozen importlib._bootstrap_external>:816(get_data)': {'stats': [2, 2, 6.4e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6.4e-05, 8.499999999999999e-05]}, 'children': {\"~:0(<method 'read' of '_io.FileIO' objects>)\": [2, 2, 2.1e-05, 2.1e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:816(get_data)'}, '<frozen importlib._bootstrap_external>:1215(find_spec)': {'stats': [26, 26, 0.00043, 0.001418], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 0.00043, 0.001418]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:34(_relax_case)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 8e-06, 5.3e-05], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 1.6e-05, 5.8e-05], \"~:0(<method 'format' of 'str' objects>)\": [122, 122, 0.00013199999999999998, 0.00013199999999999998], \"~:0(<method 'rpartition' of 'str' objects>)\": [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:68(_path_stat)': [26, 26, 2.3e-05, 0.00020999999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1215(find_spec)'}, '<frozen importlib._bootstrap_external>:903(create_module)': {'stats': [3, 3, 2.4e-05, 0.002375], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [3, 3, 2.4e-05, 0.002375]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 7e-06, 7e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:903(create_module)'}, '/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': {'stats': [1, 1, 7e-06, 7e-06], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 7e-06, 7e-06]}, 'children': {}, 'display_name': 'random.py:639(SystemRandom)'}, '~:0(<built-in method builtins.__build_class__>)': {'stats': [2, 2, 0.000101, 0.000128], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 0.000101, 0.000128]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': [1, 1, 7e-06, 7e-06], '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '~:0(<built-in method builtins.__build_class__>)'}, '<frozen importlib._bootstrap_external>:811(get_filename)': {'stats': [2, 2, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:811(get_filename)'}, '<frozen importlib._bootstrap_external>:45(_r_long)': {'stats': [4, 4, 6e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'children': {'~:0(<built-in method from_bytes>)': [4, 4, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:45(_r_long)'}, '<frozen importlib._bootstrap>:966(_find_and_load)': {'stats': [1, 5, 4.7e-05, 0.0058119999999999995], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [3, 3, 2.6e-05, 0.0044989999999999995], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 0.002512], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'children': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 9e-06, 3.9999999999999996e-05], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 2.2e-05, 0.005758], '<frozen importlib._bootstrap>:190(cb)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap>:159(__init__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 2.4e-05, 0.000116]}, 'display_name': '<frozen importlib._bootstrap>:966(_find_and_load)'}, '<frozen importlib._bootstrap>:94(acquire)': {'stats': [5, 5, 3.1e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.1e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 0.0, 0.0]}, 'display_name': '<frozen importlib._bootstrap>:94(acquire)'}, '~:0(<built-in method _thread.allocate_lock>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:74(__init__)': [10, 10, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.allocate_lock>)'}, \"~:0(<method 'read' of '_io.FileIO' objects>)\": {'stats': [2, 2, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 2.1e-05, 2.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'read' of '_io.FileIO' objects>)\"}, '~:0(<built-in method _imp.release_lock>)': {'stats': [20, 20, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 3e-06, 3e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.release_lock>)'}, '<frozen importlib._bootstrap>:225(_verbose_message)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:225(_verbose_message)'}, '<frozen importlib._bootstrap>:716(find_spec)': {'stats': [5, 5, 8e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8e-06, 2.1e-05]}, 'children': {'~:0(<built-in method _imp.is_builtin>)': [5, 5, 1.3e-05, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:716(find_spec)'}, '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': {'stats': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': 'random.py:68(Random)'}, \"~:0(<method 'format' of 'str' objects>)\": {'stats': [122, 122, 0.00013199999999999998, 0.00013199999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.00013199999999999998, 0.00013199999999999998]}, 'children': {}, 'display_name': \"~:0(<method 'format' of 'str' objects>)\"}, \"~:0(<method 'rpartition' of 'str' objects>)\": {'stats': [44, 44, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': \"~:0(<method 'rpartition' of 'str' objects>)\"}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': {'stats': [1, 1, 4.2e-05, 0.002601], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 4.2e-05, 0.002601]}, 'children': {'<frozen importlib._bootstrap>:996(_handle_fromlist)': [1, 1, 1e-06, 4e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 1.1e-05, 0.002512], \"~:0(<method 'union' of 'set' objects>)\": [1, 1, 1.1e-05, 1.1e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 2.3e-05, 3.1e-05], '~:0(<built-in method builtins.globals>)': [6, 6, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:53(<module>)'}, '~:0(<built-in method builtins.exec>)': {'stats': [1, 3, 7e-06, 0.005827], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 0.000101, 0.005012], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 4.2e-05, 0.002601], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'display_name': '~:0(<built-in method builtins.exec>)'}, '~:0(<built-in method _imp._fix_co_filename>)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp._fix_co_filename>)'}, '~:0(<built-in method posix.stat>)': {'stats': [33, 33, 0.00022899999999999998, 0.00022899999999999998], 'callers': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'children': {}, 'display_name': '~:0(<built-in method posix.stat>)'}, '~:0(<built-in method _thread.get_ident>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:94(acquire)': [5, 5, 0.0, 0.0], '<frozen importlib._bootstrap>:119(release)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.get_ident>)'}, '<frozen importlib._bootstrap>:321(__exit__)': {'stats': [5, 5, 2.4e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 2.4e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:225(_verbose_message)': [5, 5, 4e-06, 4e-06], '~:0(<built-in method builtins.any>)': [5, 5, 8e-06, 1.7e-05]}, 'display_name': '<frozen importlib._bootstrap>:321(__exit__)'}, '<frozen importlib._bootstrap_external>:87(_path_isfile)': {'stats': [5, 5, 8e-06, 5.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 8e-06, 5.3e-05]}, 'children': {'<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:87(_path_isfile)'}, '<frozen importlib._bootstrap>:789(find_spec)': {'stats': [5, 5, 7e-06, 1.2e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 7e-06, 1.2e-05]}, 'children': {'~:0(<built-in method _imp.is_frozen>)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'display_name': '<frozen importlib._bootstrap>:789(find_spec)'}, 'tree_tests.py:1(<module>)': {'stats': [1, 1, 9.999999999999999e-06, 0.0058249999999999994], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'children': {'tree_tests.py:3(test)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'display_name': 'tree_tests.py:1(<module>)'}, '~:0(<built-in method builtins.globals>)': {'stats': [6, 6, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.globals>)'}, '<frozen importlib._bootstrap_external>:56(_path_split)': {'stats': [4, 4, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 2e-06, 2e-06], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:56(_path_split)'}, '<frozen importlib._bootstrap>:190(cb)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:190(cb)'}, '<frozen importlib._bootstrap_external>:68(_path_stat)': {'stats': [33, 33, 2.8e-05, 0.000257], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 2.3e-05, 0.00020999999999999998], '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 4.9999999999999996e-06, 3.4e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 0.0, 1.3e-05]}, 'children': {'~:0(<built-in method posix.stat>)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:68(_path_stat)'}, '<frozen importlib._bootstrap>:510(_init_module_attrs)': {'stats': [5, 5, 4.9e-05, 0.000185], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 4.9e-05, 0.000185]}, 'children': {'<frozen importlib._bootstrap>:406(cached)': [7, 7, 1.3e-05, 8.2e-05], '<frozen importlib._bootstrap>:427(has_location)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 9.999999999999999e-06, 1.4e-05], '~:0(<built-in method builtins.getattr>)': [30, 30, 3.9e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:510(_init_module_attrs)'}, '~:0(<built-in method _imp.create_dynamic>)': {'stats': [3, 3, 0.002335, 0.002335], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 0.002335, 0.002335]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.create_dynamic>)'}, '<frozen importlib._bootstrap_external>:826(path_stats)': {'stats': [2, 2, 6e-06, 1.8999999999999998e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6e-06, 1.8999999999999998e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [2, 2, 0.0, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:826(path_stats)'}, '~:0(<built-in method builtins.getattr>)': {'stats': [36, 36, 4.2e-05, 4.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [30, 30, 3.9e-05, 3.9e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.getattr>)'}, '<frozen importlib._bootstrap_external>:50(_path_join)': {'stats': [126, 126, 0.000168, 0.00046699999999999997], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 4.9999999999999996e-06, 1.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [126, 126, 0.000166, 0.000251], \"~:0(<method 'join' of 'str' objects>)\": [126, 126, 4.8e-05, 4.8e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:50(_path_join)'}, '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': {'stats': [1, 8, 1.7e-05, 0.005016], 'callers': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 2e-06, 0.005016]}, 'children': {'~:0(<built-in method _imp.exec_dynamic>)': [3, 3, 4e-06, 4e-06], '~:0(<built-in method builtins.exec>)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999], '~:0(<built-in method _imp.create_dynamic>)': [3, 3, 0.002335, 0.002335]}, 'display_name': '<frozen importlib._bootstrap>:214(_call_with_frames_removed)'}, '~:0(<built-in method _hashlib.openssl_sha1>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha1>)'}, \"~:0(<method 'rstrip' of 'str' objects>)\": {'stats': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'children': {}, 'display_name': \"~:0(<method 'rstrip' of 'str' objects>)\"}, '<frozen importlib._bootstrap>:163(__enter__)': {'stats': [5, 5, 2.4e-05, 0.000116], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 2.4e-05, 0.000116]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:94(acquire)': [5, 5, 3.1e-05, 3.1e-05], '<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'display_name': '<frozen importlib._bootstrap>:163(__enter__)'}, '<frozen importlib._bootstrap>:372(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:372(__init__)'}, '~:0(<built-in method posix.urandom>)': {'stats': [1, 1, 0.000202, 0.000202], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 0.000202, 0.000202]}, 'children': {}, 'display_name': '~:0(<built-in method posix.urandom>)'}, '~:0(<built-in method _imp.is_frozen>)': {'stats': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_frozen>)'}, '~:0(<built-in method marshal.loads>)': {'stats': [2, 2, 0.00024599999999999996, 0.00024599999999999996], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 0.00024599999999999996, 0.00024599999999999996]}, 'children': {}, 'display_name': '~:0(<built-in method marshal.loads>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': {'stats': [1, 1, 4e-06, 0.000252], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 4e-06, 0.000252]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'display_name': 'random.py:84(__init__)'}, '<frozen importlib._bootstrap>:324(<genexpr>)': {'stats': [20, 20, 9e-06, 9e-06], 'callers': {'~:0(<built-in method builtins.any>)': [20, 20, 9e-06, 9e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:324(<genexpr>)'}, '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': {'stats': [5, 5, 2.6e-05, 3.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 2.6e-05, 3.4e-05]}, 'children': {'<frozen importlib._bootstrap>:372(__init__)': [5, 5, 8e-06, 8e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:513(spec_from_file_location)'}, '~:0(<built-in method _hashlib.openssl_md5>)': {'stats': [1, 1, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_md5>)'}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': {'stats': [6, 6, 2.3e-05, 3.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 2.3e-05, 3.1e-05]}, 'children': {'~:0(<built-in method builtins.getattr>)': [6, 6, 3e-06, 3e-06], '~:0(<built-in method _hashlib.openssl_sha256>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_md5>)': [1, 1, 2e-06, 2e-06], '~:0(<built-in method _hashlib.openssl_sha224>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_sha512>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha1>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha384>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:98(__get_openssl_constructor)'}, '<frozen importlib._bootstrap>:176(_get_module_lock)': {'stats': [5, 5, 3.7e-05, 5.9999999999999995e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'children': {'<frozen importlib._bootstrap>:74(__init__)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:176(_get_module_lock)'}, '~:0(<built-in method _imp.is_builtin>)': {'stats': [5, 5, 1.3e-05, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 1.3e-05, 1.3e-05]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_builtin>)'}};\n", | |
| "var sv_base_size = 1000;\n", | |
| "function sv_build_hierarchy(\n", | |
| "root_name, depth, cutoff, node_size, parent_name, call_stack) {\n", | |
| "// We track the call stack to avoid displaying recursive calls.\n", | |
| "if (call_stack == null) {\n", | |
| "var call_stack = Immutable.Set([root_name]);\n", | |
| "} else {\n", | |
| "var call_stack = call_stack.add(root_name);\n", | |
| "}\n", | |
| "var data = {};\n", | |
| "data['name'] = root_name;\n", | |
| "data['display_name'] = stats[root_name]['display_name'];\n", | |
| "data['size'] = node_size;\n", | |
| "data['cumulative'] = stats[root_name]['stats'][3];\n", | |
| "if (parent_name == null) {\n", | |
| "// This should only happen once: for the root node.\n", | |
| "data['parent_name'] = root_name;\n", | |
| "var parent_time = data['cumulative'];\n", | |
| "} else {\n", | |
| "data['parent_name'] = parent_name;\n", | |
| "// the amount of time spent in root_name when it was called by parent_time\n", | |
| "var parent_time = stats[root_name]['callers'][parent_name][3];\n", | |
| "}\n", | |
| "if (depth !== 0 && _.size(stats[root_name]['children']) !== 0) {\n", | |
| "// figure out the child sizes\n", | |
| "// we do this here because it needs to be correct before\n", | |
| "// heading further into the call stack\n", | |
| "var child_sizes = {};\n", | |
| "var size_of_children = 0;\n", | |
| "for (var child_name in stats[root_name]['children']) {\n", | |
| "// the amount of time spent in a child when it was called by root_name\n", | |
| "var child_time = stats[child_name]['callers'][root_name][3];\n", | |
| "child_sizes[child_name] = child_time / parent_time * node_size;\n", | |
| "size_of_children += child_sizes[child_name];\n", | |
| "}\n", | |
| "// if the children add up to be larger than the parent\n", | |
| "// then normalize them to the parent size\n", | |
| "if (size_of_children > node_size) {\n", | |
| "for (var child_name in stats[root_name]['children']) {\n", | |
| "child_sizes[child_name] *= (node_size / size_of_children);\n", | |
| "}\n", | |
| "}\n", | |
| "data['children'] = [];\n", | |
| "for (var child_name in stats[root_name]['children']) {\n", | |
| "// Make sure we're not recursing into a function\n", | |
| "// that's already on the stack.\n", | |
| "if (call_stack.contains(child_name)) {\n", | |
| "continue;\n", | |
| "}\n", | |
| "// If this child is so small that it's less than some cutoff\n", | |
| "// size of its parent we'll add this child but go no deeper.\n", | |
| "var child_time = stats[child_name]['callers'][root_name][3];\n", | |
| "var new_depth = depth - 1;\n", | |
| "if (child_time / parent_time < cutoff) {\n", | |
| "new_depth = 0;\n", | |
| "}\n", | |
| "data['children'].push(\n", | |
| "sv_build_hierarchy(\n", | |
| "child_name, new_depth, cutoff, child_sizes[child_name],\n", | |
| "root_name, call_stack));\n", | |
| "}\n", | |
| "if (size_of_children < node_size) {\n", | |
| "// make a child representing the internal time of this function\n", | |
| "var time_in_children = _.reduce(\n", | |
| "stats[root_name]['children'],\n", | |
| "function (sum, child) {\n", | |
| "return sum + child[3];\n", | |
| "},\n", | |
| "0\n", | |
| ");\n", | |
| "data['children'].push({\n", | |
| "name: root_name,\n", | |
| "display_name: data['display_name'],\n", | |
| "parent_name: data['parent_name'],\n", | |
| "cumulative: stats[root_name]['stats'][3],\n", | |
| "size: Math.max(\n", | |
| "0, (parent_time - time_in_children) / parent_time * node_size)\n", | |
| "});\n", | |
| "}\n", | |
| "}\n", | |
| "return data;\n", | |
| "}\n", | |
| "self.onmessage = function (event) {\n", | |
| "// Try loading JS from CDN in case snakeviz server is off\n", | |
| "try {\n", | |
| "importScripts(\n", | |
| "\"https://cdnjs.cloudflare.com/ajax/libs/immutable/3.3.0/immutable.min.js\",\n", | |
| "\"https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.compat.min.js\");\n", | |
| "}\n", | |
| "// If the user is offline try loading from the SnakeViz server\n", | |
| "catch (e) {\n", | |
| "try {\n", | |
| "importScripts(\n", | |
| "event.data['url'] + \"/static/vendor/immutable.min.js\",\n", | |
| "event.data['url'] + \"/static/vendor/lodash.compat.min.js\");\n", | |
| "}\n", | |
| "catch (e) {\n", | |
| "throw 'Could not load JS libraries in worker.';\n", | |
| "}\n", | |
| "}\n", | |
| "var depth = event.data['depth'];\n", | |
| "var cutoff = event.data['cutoff'];\n", | |
| "var root_name = event.data['name'];\n", | |
| "var parent_name = event.data['parent_name'];\n", | |
| "self.postMessage(JSON.stringify(\n", | |
| "sv_build_hierarchy(\n", | |
| "root_name, depth, cutoff, sv_base_size, parent_name)));\n", | |
| "};\n", | |
| "</script>\n", | |
| "<!-- Load SnakeViz JS Files -->\n", | |
| "<script src=\"tree_tests_files/snakeviz.js\"></script>\n", | |
| "<script src=\"tree_tests_files/drawsvg.js\"></script>\n", | |
| "<!-- Do initial setup stuff -->\n", | |
| "<script>\n", | |
| "// Initialize data\n", | |
| "$(document).ready(_.defer(function () {\n", | |
| "var profile_data = {'<frozen importlib._bootstrap_external>:1101(_get_spec)': {'stats': [5, 5, 9.3e-05, 0.0016079999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'children': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 0.00043, 0.001418], '~:0(<built-in method builtins.hasattr>)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [36, 36, 3.5e-05, 7.2e-05], '~:0(<built-in method builtins.isinstance>)': [36, 36, 9e-06, 9e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1101(_get_spec)'}, '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': {'stats': [36, 36, 3.5e-05, 7.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 3.5e-05, 7.2e-05]}, 'children': {'~:0(<built-in method posix.getcwd>)': [10, 10, 3.7e-05, 3.7e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:1064(_path_importer_cache)'}, '~:0(<built-in method builtins.isinstance>)': {'stats': [39, 39, 1.2e-05, 1.2e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [36, 36, 9e-06, 9e-06], '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.isinstance>)'}, 'tree_tests.py:3(test)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'tree_tests.py:1(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': 'tree_tests.py:3(test)'}, '~:0(<built-in method builtins.hasattr>)': {'stats': [44, 44, 3.9999999999999996e-05, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 1.6e-05, 1.6e-05], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 3e-06, 3e-06], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.hasattr>)'}, \"~:0(<method 'join' of 'str' objects>)\": {'stats': [130, 130, 4.9e-05, 4.9e-05], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 4.8e-05, 4.8e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 1e-06, 1e-06]}, 'children': {}, 'display_name': \"~:0(<method 'join' of 'str' objects>)\"}, \"~:0(<method 'endswith' of 'str' objects>)\": {'stats': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [8, 8, 9.999999999999999e-06, 9.999999999999999e-06]}, 'children': {}, 'display_name': \"~:0(<method 'endswith' of 'str' objects>)\"}, '<frozen importlib._bootstrap_external>:656(create_module)': {'stats': [2, 2, 0.0, 0.0], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 0.0, 0.0]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:656(create_module)'}, '<frozen importlib._bootstrap_external>:659(exec_module)': {'stats': [1, 2, 1.3e-05, 0.005325], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [2, 1, 1.3e-05, 0.005325]}, 'children': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.7e-05, 0.000468], '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 2e-06, 0.005016]}, 'display_name': '<frozen importlib._bootstrap_external>:659(exec_module)'}, '<frozen importlib._bootstrap>:74(__init__)': {'stats': [5, 5, 1.8999999999999998e-05, 2.3e-05], 'callers': {'<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'children': {'~:0(<built-in method _thread.allocate_lock>)': [10, 10, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:74(__init__)'}, '~:0(<built-in method _hashlib.openssl_sha512>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha512>)'}, '<frozen importlib._bootstrap>:119(release)': {'stats': [5, 5, 2.7e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 2.7e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:119(release)'}, '~:0(<built-in method math.sqrt>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.sqrt>)'}, '<frozen importlib._bootstrap_external>:892(__init__)': {'stats': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:892(__init__)'}, '/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': {'stats': [1, 1, 1.9999999999999998e-05, 0.000248], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'children': {'~:0(<function Random.seed at 0x7f2a9c95e158>)': [1, 1, 1.6e-05, 1.6e-05], '~:0(<built-in method from_bytes>)': [1, 1, 8e-06, 8e-06], '~:0(<built-in method posix.urandom>)': [1, 1, 0.000202, 0.000202], '~:0(<built-in method builtins.isinstance>)': [1, 1, 2e-06, 2e-06]}, 'display_name': 'random.py:93(seed)'}, '<frozen importlib._bootstrap_external>:246(cache_from_source)': {'stats': [4, 4, 2.8e-05, 6.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [2, 2, 1.9999999999999998e-05, 3.9e-05], '<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 8e-06, 2.4e-05]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [4, 4, 4.9999999999999996e-06, 1.8e-05], \"~:0(<method 'join' of 'str' objects>)\": [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 9.999999999999999e-06, 1.4e-05], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:246(cache_from_source)'}, '<frozen importlib._bootstrap_external>:1210(_get_spec)': {'stats': [5, 5, 1.6e-05, 5.8e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 1.6e-05, 5.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:892(__init__)': [3, 3, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 2.6e-05, 3.4e-05], '<frozen importlib._bootstrap_external>:786(__init__)': [2, 2, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:1210(_get_spec)'}, '<frozen importlib._bootstrap>:856(__exit__)': {'stats': [15, 15, 9.999999999999999e-06, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.3e-05]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [15, 15, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:856(__exit__)'}, '~:0(<built-in method _imp.acquire_lock>)': {'stats': [15, 15, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.acquire_lock>)'}, '~:0(<built-in method posix.getcwd>)': {'stats': [10, 10, 3.7e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:1064(_path_importer_cache)': [10, 10, 3.7e-05, 3.7e-05]}, 'children': {}, 'display_name': '~:0(<built-in method posix.getcwd>)'}, '~:0(<built-in method _imp.exec_dynamic>)': {'stats': [3, 3, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.exec_dynamic>)'}, '<frozen importlib._bootstrap>:35(_new_module)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:35(_new_module)'}, '~:0(<built-in method math.exp>)': {'stats': [1, 1, 3e-06, 3e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.exp>)'}, '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': {'stats': [1, 5, 2.2e-05, 0.005758], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 1, 2.2e-05, 0.005758]}, 'children': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8.4e-05, 0.001763], \"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'display_name': '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)'}, '<frozen importlib._bootstrap_external>:786(__init__)': {'stats': [2, 2, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [2, 2, 3e-06, 3e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:786(__init__)'}, '<frozen importlib._bootstrap>:879(_find_spec)': {'stats': [5, 5, 8.4e-05, 0.001763], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 8.4e-05, 0.001763]}, 'children': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 9.999999999999999e-06, 1.3e-05], '<frozen importlib._bootstrap>:852(__enter__)': [15, 15, 9.999999999999999e-06, 1.4e-05], '<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 7e-06, 1.2e-05], '<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 8e-06, 2.1e-05], '<frozen importlib._bootstrap_external>:1133(find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'display_name': '<frozen importlib._bootstrap>:879(_find_spec)'}, \"~:0(<method 'union' of 'set' objects>)\": {'stats': [1, 1, 1.1e-05, 1.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 1.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'union' of 'set' objects>)\"}, '<frozen importlib._bootstrap>:852(__enter__)': {'stats': [15, 15, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [15, 15, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method _imp.acquire_lock>)': [15, 15, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:852(__enter__)'}, '<frozen importlib._bootstrap>:314(__enter__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:314(__enter__)'}, '<frozen importlib._bootstrap>:419(parent)': {'stats': [5, 5, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 9.999999999999999e-06, 1.4e-05]}, 'children': {\"~:0(<method 'rpartition' of 'str' objects>)\": [5, 5, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap>:419(parent)'}, '<frozen importlib._bootstrap_external>:1133(find_spec)': {'stats': [5, 5, 1.1e-05, 0.001619], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 1.1e-05, 0.001619]}, 'children': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [5, 5, 9.3e-05, 0.0016079999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1133(find_spec)'}, '<frozen importlib._bootstrap>:996(_handle_fromlist)': {'stats': [8, 8, 9.999999999999999e-06, 2.9999999999999997e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [7, 7, 9e-06, 2.6e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1e-06, 4e-06]}, 'children': {'~:0(<built-in method builtins.hasattr>)': [8, 8, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '<frozen importlib._bootstrap>:996(_handle_fromlist)'}, '<frozen importlib._bootstrap_external>:729(get_code)': {'stats': [2, 2, 2.7e-05, 0.000468], 'callers': {'<frozen importlib._bootstrap_external>:659(exec_module)': [2, 2, 2.7e-05, 0.000468]}, 'children': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 4e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 6.4e-05, 8.499999999999999e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 6e-06, 1.8999999999999998e-05], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 8e-06, 2.4e-05], '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [2, 2, 2.6e-05, 3.7e-05], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 1.4e-05, 0.000269], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:729(get_code)'}, '<frozen importlib._bootstrap>:170(__exit__)': {'stats': [5, 5, 9e-06, 3.9999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 9e-06, 3.9999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:119(release)': [5, 5, 2.7e-05, 3.1e-05]}, 'display_name': '<frozen importlib._bootstrap>:170(__exit__)'}, '<frozen importlib._bootstrap_external>:911(exec_module)': {'stats': [3, 3, 9e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [3, 3, 9e-06, 2.1e-05]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:911(exec_module)'}, '<frozen importlib._bootstrap>:427(has_location)': {'stats': [5, 5, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:427(has_location)'}, '~:0(<function Random.seed at 0x7f2a9c95e158>)': {'stats': [1, 1, 1.6e-05, 1.6e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.6e-05, 1.6e-05]}, 'children': {}, 'display_name': '~:0(<function Random.seed at 0x7f2a9c95e158>)'}, '~:0(<built-in method builtins.len>)': {'stats': [8, 8, 3e-06, 3e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.len>)'}, '<frozen importlib._bootstrap>:310(__init__)': {'stats': [5, 5, 6e-06, 6e-06], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 6e-06, 6e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:310(__init__)'}, '~:0(<built-in method builtins.any>)': {'stats': [5, 5, 8e-06, 1.7e-05], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 8e-06, 1.7e-05]}, 'children': {'<frozen importlib._bootstrap>:324(<genexpr>)': [20, 20, 9e-06, 9e-06]}, 'display_name': '~:0(<built-in method builtins.any>)'}, '~:0(<built-in method _hashlib.openssl_sha384>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha384>)'}, '<frozen importlib._bootstrap>:159(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:159(__init__)'}, '<frozen importlib._bootstrap>:659(_load_unlocked)': {'stats': [1, 5, 4.9999999999999996e-05, 0.005412999999999999], 'callers': {'<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 4.9999999999999996e-05, 0.005412999999999999]}, 'children': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 9e-06, 2.1e-05], '<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 2.4e-05, 4.4999999999999996e-05], '<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 1.8e-05, 0.002584], '<frozen importlib._bootstrap>:314(__enter__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 1.3e-05, 0.005325], '<frozen importlib._bootstrap>:310(__init__)': [5, 5, 6e-06, 6e-06], '~:0(<built-in method builtins.hasattr>)': [5, 5, 3e-06, 3e-06]}, 'display_name': '<frozen importlib._bootstrap>:659(_load_unlocked)'}, '<frozen importlib._bootstrap_external>:342(_get_cached)': {'stats': [5, 5, 1.9999999999999998e-05, 6.9e-05], 'callers': {'<frozen importlib._bootstrap>:406(cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'children': {\"~:0(<method 'endswith' of 'str' objects>)\": [8, 8, 9.999999999999999e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [2, 2, 1.9999999999999998e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:342(_get_cached)'}, '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': {'stats': [2, 2, 1.4e-05, 0.000269], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 1.4e-05, 0.000269]}, 'children': {'<frozen importlib._bootstrap_external>:366(_verbose_message)': [2, 2, 3e-06, 3e-06], '~:0(<built-in method marshal.loads>)': [2, 2, 0.00024599999999999996, 0.00024599999999999996], '~:0(<built-in method _imp._fix_co_filename>)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '~:0(<built-in method builtins.isinstance>)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:474(_compile_bytecode)'}, '<frozen importlib._bootstrap>:406(cached)': {'stats': [7, 7, 1.3e-05, 8.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [7, 7, 1.3e-05, 8.2e-05]}, 'children': {'<frozen importlib._bootstrap_external>:342(_get_cached)': [5, 5, 1.9999999999999998e-05, 6.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:406(cached)'}, '<frozen importlib._bootstrap_external>:366(_verbose_message)': {'stats': [132, 132, 8.7e-05, 8.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2e-06, 2e-06], '<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 7e-06, 7e-06], '<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 3e-06, 3e-06], '<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 2e-06, 2e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:366(_verbose_message)'}, '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': {'stats': [2, 2, 2.6e-05, 3.7e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 2.6e-05, 3.7e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 1e-06, 1e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)'}, '~:0(<built-in method from_bytes>)': {'stats': [5, 5, 1.2e-05, 1.2e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:45(_r_long)': [4, 4, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method from_bytes>)'}, '~:0(<built-in method math.log>)': {'stats': [2, 2, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method math.log>)'}, '<frozen importlib._bootstrap_external>:34(_relax_case)': {'stats': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:34(_relax_case)'}, '~:0(<built-in method _hashlib.openssl_sha224>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha224>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': {'stats': [1, 1, 0.000101, 0.005012], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 0.000101, 0.005012]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': [1, 1, 4e-06, 0.000252], '~:0(<built-in method math.log>)': [2, 2, 2e-06, 2e-06], '~:0(<built-in method builtins.__build_class__>)': [2, 2, 0.000101, 0.000128], '<frozen importlib._bootstrap>:966(_find_and_load)': [3, 3, 2.6e-05, 0.0044989999999999995], '~:0(<built-in method math.exp>)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:996(_handle_fromlist)': [7, 7, 9e-06, 2.6e-05], '~:0(<built-in method math.sqrt>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'random.py:37(<module>)'}, '~:0(<built-in method _hashlib.openssl_sha256>)': {'stats': [1, 1, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha256>)'}, '<frozen importlib._bootstrap_external>:52(<listcomp>)': {'stats': [126, 126, 0.000166, 0.000251], 'callers': {'<frozen importlib._bootstrap_external>:50(_path_join)': [126, 126, 0.000166, 0.000251]}, 'children': {\"~:0(<method 'rstrip' of 'str' objects>)\": [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:52(<listcomp>)'}, '<frozen importlib._bootstrap>:570(module_from_spec)': {'stats': [5, 5, 1.8e-05, 0.002584], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 1.8e-05, 0.002584]}, 'children': {'<frozen importlib._bootstrap_external>:656(create_module)': [2, 2, 0.0, 0.0], '~:0(<built-in method builtins.hasattr>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:35(_new_module)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 2.4e-05, 0.002375], '<frozen importlib._bootstrap>:510(_init_module_attrs)': [5, 5, 4.9e-05, 0.000185]}, 'display_name': '<frozen importlib._bootstrap>:570(module_from_spec)'}, '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': {'stats': [5, 5, 1.1e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [5, 5, 4.9999999999999996e-06, 3.4e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)'}, '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': {'stats': [2, 2, 4e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 4e-06, 4.9999999999999996e-06]}, 'children': {'<frozen importlib._bootstrap_external>:811(get_filename)': [2, 2, 1e-06, 1e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:382(_check_name_wrapper)'}, '<frozen importlib._bootstrap_external>:816(get_data)': {'stats': [2, 2, 6.4e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6.4e-05, 8.499999999999999e-05]}, 'children': {\"~:0(<method 'read' of '_io.FileIO' objects>)\": [2, 2, 2.1e-05, 2.1e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:816(get_data)'}, '<frozen importlib._bootstrap_external>:1215(find_spec)': {'stats': [26, 26, 0.00043, 0.001418], 'callers': {'<frozen importlib._bootstrap_external>:1101(_get_spec)': [26, 26, 0.00043, 0.001418]}, 'children': {'<frozen importlib._bootstrap_external>:50(_path_join)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:34(_relax_case)': [26, 26, 4.9999999999999996e-06, 4.9999999999999996e-06], '<frozen importlib._bootstrap_external>:87(_path_isfile)': [5, 5, 8e-06, 5.3e-05], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [122, 122, 7.3e-05, 7.3e-05], '<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 1.6e-05, 5.8e-05], \"~:0(<method 'format' of 'str' objects>)\": [122, 122, 0.00013199999999999998, 0.00013199999999999998], \"~:0(<method 'rpartition' of 'str' objects>)\": [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:68(_path_stat)': [26, 26, 2.3e-05, 0.00020999999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:1215(find_spec)'}, '<frozen importlib._bootstrap_external>:903(create_module)': {'stats': [3, 3, 2.4e-05, 0.002375], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [3, 3, 2.4e-05, 0.002375]}, 'children': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:366(_verbose_message)': [3, 3, 7e-06, 7e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:903(create_module)'}, '/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': {'stats': [1, 1, 7e-06, 7e-06], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 7e-06, 7e-06]}, 'children': {}, 'display_name': 'random.py:639(SystemRandom)'}, '~:0(<built-in method builtins.__build_class__>)': {'stats': [2, 2, 0.000101, 0.000128], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [2, 2, 0.000101, 0.000128]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:639(SystemRandom)': [1, 1, 7e-06, 7e-06], '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'display_name': '~:0(<built-in method builtins.__build_class__>)'}, '<frozen importlib._bootstrap_external>:811(get_filename)': {'stats': [2, 2, 1e-06, 1e-06], 'callers': {'<frozen importlib._bootstrap_external>:382(_check_name_wrapper)': [2, 2, 1e-06, 1e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap_external>:811(get_filename)'}, '<frozen importlib._bootstrap_external>:45(_r_long)': {'stats': [4, 4, 6e-06, 9.999999999999999e-06], 'callers': {'<frozen importlib._bootstrap_external>:419(_validate_bytecode_header)': [4, 4, 6e-06, 9.999999999999999e-06]}, 'children': {'~:0(<built-in method from_bytes>)': [4, 4, 4e-06, 4e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:45(_r_long)'}, '<frozen importlib._bootstrap>:966(_find_and_load)': {'stats': [1, 5, 4.7e-05, 0.0058119999999999995], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [3, 3, 2.6e-05, 0.0044989999999999995], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 1.1e-05, 0.002512], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'children': {'<frozen importlib._bootstrap>:170(__exit__)': [5, 5, 9e-06, 3.9999999999999996e-05], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 1, 2.2e-05, 0.005758], '<frozen importlib._bootstrap>:190(cb)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap>:159(__init__)': [5, 5, 8e-06, 8e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 2.4e-05, 0.000116]}, 'display_name': '<frozen importlib._bootstrap>:966(_find_and_load)'}, '<frozen importlib._bootstrap>:94(acquire)': {'stats': [5, 5, 3.1e-05, 3.1e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.1e-05, 3.1e-05]}, 'children': {'~:0(<built-in method _thread.get_ident>)': [5, 5, 0.0, 0.0]}, 'display_name': '<frozen importlib._bootstrap>:94(acquire)'}, '~:0(<built-in method _thread.allocate_lock>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:74(__init__)': [10, 10, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.allocate_lock>)'}, \"~:0(<method 'read' of '_io.FileIO' objects>)\": {'stats': [2, 2, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:816(get_data)': [2, 2, 2.1e-05, 2.1e-05]}, 'children': {}, 'display_name': \"~:0(<method 'read' of '_io.FileIO' objects>)\"}, '~:0(<built-in method _imp.release_lock>)': {'stats': [20, 20, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:856(__exit__)': [15, 15, 3e-06, 3e-06], '<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.release_lock>)'}, '<frozen importlib._bootstrap>:225(_verbose_message)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:321(__exit__)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:225(_verbose_message)'}, '<frozen importlib._bootstrap>:716(find_spec)': {'stats': [5, 5, 8e-06, 2.1e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 8e-06, 2.1e-05]}, 'children': {'~:0(<built-in method _imp.is_builtin>)': [5, 5, 1.3e-05, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:716(find_spec)'}, '/home/lion/anaconda3/lib/python3.5/random.py:68(Random)': {'stats': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05], 'callers': {'~:0(<built-in method builtins.__build_class__>)': [1, 1, 1.9999999999999998e-05, 1.9999999999999998e-05]}, 'children': {}, 'display_name': 'random.py:68(Random)'}, \"~:0(<method 'format' of 'str' objects>)\": {'stats': [122, 122, 0.00013199999999999998, 0.00013199999999999998], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.00013199999999999998, 0.00013199999999999998]}, 'children': {}, 'display_name': \"~:0(<method 'format' of 'str' objects>)\"}, \"~:0(<method 'rpartition' of 'str' objects>)\": {'stats': [44, 44, 2.1e-05, 2.1e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 8e-06, 8e-06], '<frozen importlib._bootstrap_external>:56(_path_split)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 4e-06, 4e-06], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 2e-06, 2e-06], '<frozen importlib._bootstrap>:939(_find_and_load_unlocked)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': \"~:0(<method 'rpartition' of 'str' objects>)\"}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': {'stats': [1, 1, 4.2e-05, 0.002601], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 4.2e-05, 0.002601]}, 'children': {'<frozen importlib._bootstrap>:996(_handle_fromlist)': [1, 1, 1e-06, 4e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 1.1e-05, 0.002512], \"~:0(<method 'union' of 'set' objects>)\": [1, 1, 1.1e-05, 1.1e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 2.3e-05, 3.1e-05], '~:0(<built-in method builtins.globals>)': [6, 6, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:53(<module>)'}, '~:0(<built-in method builtins.exec>)': {'stats': [1, 3, 7e-06, 0.005827], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 0.000101, 0.005012], '/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [1, 1, 4.2e-05, 0.002601], 'tree_tests.py:1(<module>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'display_name': '~:0(<built-in method builtins.exec>)'}, '~:0(<built-in method _imp._fix_co_filename>)': {'stats': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp._fix_co_filename>)'}, '~:0(<built-in method posix.stat>)': {'stats': [33, 33, 0.00022899999999999998, 0.00022899999999999998], 'callers': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'children': {}, 'display_name': '~:0(<built-in method posix.stat>)'}, '~:0(<built-in method _thread.get_ident>)': {'stats': [10, 10, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:94(acquire)': [5, 5, 0.0, 0.0], '<frozen importlib._bootstrap>:119(release)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _thread.get_ident>)'}, '<frozen importlib._bootstrap>:321(__exit__)': {'stats': [5, 5, 2.4e-05, 4.4999999999999996e-05], 'callers': {'<frozen importlib._bootstrap>:659(_load_unlocked)': [5, 5, 2.4e-05, 4.4999999999999996e-05]}, 'children': {'<frozen importlib._bootstrap>:225(_verbose_message)': [5, 5, 4e-06, 4e-06], '~:0(<built-in method builtins.any>)': [5, 5, 8e-06, 1.7e-05]}, 'display_name': '<frozen importlib._bootstrap>:321(__exit__)'}, '<frozen importlib._bootstrap_external>:87(_path_isfile)': {'stats': [5, 5, 8e-06, 5.3e-05], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [5, 5, 8e-06, 5.3e-05]}, 'children': {'<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 1.1e-05, 4.4999999999999996e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:87(_path_isfile)'}, '<frozen importlib._bootstrap>:789(find_spec)': {'stats': [5, 5, 7e-06, 1.2e-05], 'callers': {'<frozen importlib._bootstrap>:879(_find_spec)': [5, 5, 7e-06, 1.2e-05]}, 'children': {'~:0(<built-in method _imp.is_frozen>)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'display_name': '<frozen importlib._bootstrap>:789(find_spec)'}, 'tree_tests.py:1(<module>)': {'stats': [1, 1, 9.999999999999999e-06, 0.0058249999999999994], 'callers': {'~:0(<built-in method builtins.exec>)': [1, 1, 9.999999999999999e-06, 0.0058249999999999994]}, 'children': {'tree_tests.py:3(test)': [1, 1, 3e-06, 3e-06], '<frozen importlib._bootstrap>:966(_find_and_load)': [1, 1, 9.999999999999999e-06, 0.0058119999999999995]}, 'display_name': 'tree_tests.py:1(<module>)'}, '~:0(<built-in method builtins.globals>)': {'stats': [6, 6, 1e-06, 1e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 1e-06, 1e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.globals>)'}, '<frozen importlib._bootstrap_external>:56(_path_split)': {'stats': [4, 4, 9.999999999999999e-06, 1.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 9.999999999999999e-06, 1.4e-05]}, 'children': {'~:0(<built-in method builtins.len>)': [4, 4, 2e-06, 2e-06], \"~:0(<method 'rpartition' of 'str' objects>)\": [4, 4, 2e-06, 2e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:56(_path_split)'}, '<frozen importlib._bootstrap>:190(cb)': {'stats': [5, 5, 4e-06, 4e-06], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 4e-06, 4e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:190(cb)'}, '<frozen importlib._bootstrap_external>:68(_path_stat)': {'stats': [33, 33, 2.8e-05, 0.000257], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [26, 26, 2.3e-05, 0.00020999999999999998], '<frozen importlib._bootstrap_external>:78(_path_is_mode_type)': [5, 5, 4.9999999999999996e-06, 3.4e-05], '<frozen importlib._bootstrap_external>:826(path_stats)': [2, 2, 0.0, 1.3e-05]}, 'children': {'~:0(<built-in method posix.stat>)': [33, 33, 0.00022899999999999998, 0.00022899999999999998]}, 'display_name': '<frozen importlib._bootstrap_external>:68(_path_stat)'}, '<frozen importlib._bootstrap>:510(_init_module_attrs)': {'stats': [5, 5, 4.9e-05, 0.000185], 'callers': {'<frozen importlib._bootstrap>:570(module_from_spec)': [5, 5, 4.9e-05, 0.000185]}, 'children': {'<frozen importlib._bootstrap>:406(cached)': [7, 7, 1.3e-05, 8.2e-05], '<frozen importlib._bootstrap>:427(has_location)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:419(parent)': [5, 5, 9.999999999999999e-06, 1.4e-05], '~:0(<built-in method builtins.getattr>)': [30, 30, 3.9e-05, 3.9e-05]}, 'display_name': '<frozen importlib._bootstrap>:510(_init_module_attrs)'}, '~:0(<built-in method _imp.create_dynamic>)': {'stats': [3, 3, 0.002335, 0.002335], 'callers': {'<frozen importlib._bootstrap>:214(_call_with_frames_removed)': [3, 3, 0.002335, 0.002335]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.create_dynamic>)'}, '<frozen importlib._bootstrap_external>:826(path_stats)': {'stats': [2, 2, 6e-06, 1.8999999999999998e-05], 'callers': {'<frozen importlib._bootstrap_external>:729(get_code)': [2, 2, 6e-06, 1.8999999999999998e-05]}, 'children': {'<frozen importlib._bootstrap_external>:68(_path_stat)': [2, 2, 0.0, 1.3e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:826(path_stats)'}, '~:0(<built-in method builtins.getattr>)': {'stats': [36, 36, 4.2e-05, 4.2e-05], 'callers': {'<frozen importlib._bootstrap>:510(_init_module_attrs)': [30, 30, 3.9e-05, 3.9e-05], '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [6, 6, 3e-06, 3e-06]}, 'children': {}, 'display_name': '~:0(<built-in method builtins.getattr>)'}, '<frozen importlib._bootstrap_external>:50(_path_join)': {'stats': [126, 126, 0.000168, 0.00046699999999999997], 'callers': {'<frozen importlib._bootstrap_external>:1215(find_spec)': [122, 122, 0.000163, 0.00044899999999999996], '<frozen importlib._bootstrap_external>:246(cache_from_source)': [4, 4, 4.9999999999999996e-06, 1.8e-05]}, 'children': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [126, 126, 0.000166, 0.000251], \"~:0(<method 'join' of 'str' objects>)\": [126, 126, 4.8e-05, 4.8e-05]}, 'display_name': '<frozen importlib._bootstrap_external>:50(_path_join)'}, '<frozen importlib._bootstrap>:214(_call_with_frames_removed)': {'stats': [1, 8, 1.7e-05, 0.005016], 'callers': {'<frozen importlib._bootstrap_external>:911(exec_module)': [3, 3, 6e-06, 9.999999999999999e-06], '<frozen importlib._bootstrap_external>:903(create_module)': [3, 3, 9e-06, 0.0023439999999999997], '<frozen importlib._bootstrap_external>:659(exec_module)': [2, 1, 2e-06, 0.005016]}, 'children': {'~:0(<built-in method _imp.exec_dynamic>)': [3, 3, 4e-06, 4e-06], '~:0(<built-in method builtins.exec>)': [2, 1, 4.9999999999999996e-06, 0.005013999999999999], '~:0(<built-in method _imp.create_dynamic>)': [3, 3, 0.002335, 0.002335]}, 'display_name': '<frozen importlib._bootstrap>:214(_call_with_frames_removed)'}, '~:0(<built-in method _hashlib.openssl_sha1>)': {'stats': [1, 1, 0.0, 0.0], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 0.0, 0.0]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_sha1>)'}, \"~:0(<method 'rstrip' of 'str' objects>)\": {'stats': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05], 'callers': {'<frozen importlib._bootstrap_external>:52(<listcomp>)': [256, 256, 8.499999999999999e-05, 8.499999999999999e-05]}, 'children': {}, 'display_name': \"~:0(<method 'rstrip' of 'str' objects>)\"}, '<frozen importlib._bootstrap>:163(__enter__)': {'stats': [5, 5, 2.4e-05, 0.000116], 'callers': {'<frozen importlib._bootstrap>:966(_find_and_load)': [5, 5, 2.4e-05, 0.000116]}, 'children': {'~:0(<built-in method _imp.release_lock>)': [5, 5, 1e-06, 1e-06], '<frozen importlib._bootstrap>:94(acquire)': [5, 5, 3.1e-05, 3.1e-05], '<frozen importlib._bootstrap>:176(_get_module_lock)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'display_name': '<frozen importlib._bootstrap>:163(__enter__)'}, '<frozen importlib._bootstrap>:372(__init__)': {'stats': [5, 5, 8e-06, 8e-06], 'callers': {'<frozen importlib._bootstrap_external>:513(spec_from_file_location)': [5, 5, 8e-06, 8e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:372(__init__)'}, '~:0(<built-in method posix.urandom>)': {'stats': [1, 1, 0.000202, 0.000202], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 0.000202, 0.000202]}, 'children': {}, 'display_name': '~:0(<built-in method posix.urandom>)'}, '~:0(<built-in method _imp.is_frozen>)': {'stats': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06], 'callers': {'<frozen importlib._bootstrap>:789(find_spec)': [5, 5, 4.9999999999999996e-06, 4.9999999999999996e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_frozen>)'}, '~:0(<built-in method marshal.loads>)': {'stats': [2, 2, 0.00024599999999999996, 0.00024599999999999996], 'callers': {'<frozen importlib._bootstrap_external>:474(_compile_bytecode)': [2, 2, 0.00024599999999999996, 0.00024599999999999996]}, 'children': {}, 'display_name': '~:0(<built-in method marshal.loads>)'}, '/home/lion/anaconda3/lib/python3.5/random.py:84(__init__)': {'stats': [1, 1, 4e-06, 0.000252], 'callers': {'/home/lion/anaconda3/lib/python3.5/random.py:37(<module>)': [1, 1, 4e-06, 0.000252]}, 'children': {'/home/lion/anaconda3/lib/python3.5/random.py:93(seed)': [1, 1, 1.9999999999999998e-05, 0.000248]}, 'display_name': 'random.py:84(__init__)'}, '<frozen importlib._bootstrap>:324(<genexpr>)': {'stats': [20, 20, 9e-06, 9e-06], 'callers': {'~:0(<built-in method builtins.any>)': [20, 20, 9e-06, 9e-06]}, 'children': {}, 'display_name': '<frozen importlib._bootstrap>:324(<genexpr>)'}, '<frozen importlib._bootstrap_external>:513(spec_from_file_location)': {'stats': [5, 5, 2.6e-05, 3.4e-05], 'callers': {'<frozen importlib._bootstrap_external>:1210(_get_spec)': [5, 5, 2.6e-05, 3.4e-05]}, 'children': {'<frozen importlib._bootstrap>:372(__init__)': [5, 5, 8e-06, 8e-06]}, 'display_name': '<frozen importlib._bootstrap_external>:513(spec_from_file_location)'}, '~:0(<built-in method _hashlib.openssl_md5>)': {'stats': [1, 1, 2e-06, 2e-06], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': [1, 1, 2e-06, 2e-06]}, 'children': {}, 'display_name': '~:0(<built-in method _hashlib.openssl_md5>)'}, '/home/lion/anaconda3/lib/python3.5/hashlib.py:98(__get_openssl_constructor)': {'stats': [6, 6, 2.3e-05, 3.1e-05], 'callers': {'/home/lion/anaconda3/lib/python3.5/hashlib.py:53(<module>)': [6, 6, 2.3e-05, 3.1e-05]}, 'children': {'~:0(<built-in method builtins.getattr>)': [6, 6, 3e-06, 3e-06], '~:0(<built-in method _hashlib.openssl_sha256>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_md5>)': [1, 1, 2e-06, 2e-06], '~:0(<built-in method _hashlib.openssl_sha224>)': [1, 1, 1e-06, 1e-06], '~:0(<built-in method _hashlib.openssl_sha512>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha1>)': [1, 1, 0.0, 0.0], '~:0(<built-in method _hashlib.openssl_sha384>)': [1, 1, 1e-06, 1e-06]}, 'display_name': 'hashlib.py:98(__get_openssl_constructor)'}, '<frozen importlib._bootstrap>:176(_get_module_lock)': {'stats': [5, 5, 3.7e-05, 5.9999999999999995e-05], 'callers': {'<frozen importlib._bootstrap>:163(__enter__)': [5, 5, 3.7e-05, 5.9999999999999995e-05]}, 'children': {'<frozen importlib._bootstrap>:74(__init__)': [5, 5, 1.8999999999999998e-05, 2.3e-05]}, 'display_name': '<frozen importlib._bootstrap>:176(_get_module_lock)'}, '~:0(<built-in method _imp.is_builtin>)': {'stats': [5, 5, 1.3e-05, 1.3e-05], 'callers': {'<frozen importlib._bootstrap>:716(find_spec)': [5, 5, 1.3e-05, 1.3e-05]}, 'children': {}, 'display_name': '~:0(<built-in method _imp.is_builtin>)'}};\n", | |
| "sv_json_cache = {};\n", | |
| "sv_worker = sv_make_worker();\n", | |
| "sv_root_func_name = sv_find_root(profile_data);\n", | |
| "sv_call_stack = [sv_root_func_name];\n", | |
| "sv_total_time = profile_data[sv_root_func_name]['stats'][3];\n", | |
| "}));\n", | |
| "// Initialize the call stack button\n", | |
| "$(document).ready(_.defer(function () {\n", | |
| "sv_update_call_stack_list();\n", | |
| "sv_call_stack_btn_for_show();\n", | |
| "}));\n", | |
| "// Draw the visualization\n", | |
| "$(document).ready(_.defer(function () {\n", | |
| "sv_draw_vis(sv_root_func_name);\n", | |
| "}));\n", | |
| "</script>\n", | |
| "\n", | |
| "\n", | |
| "</body></html>" | |
| ], | |
| "text/plain": [ | |
| "<IPython.core.display.HTML object>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "display(HTML('/home/lion/projects/python/notebooks/blog_and_notes/profiling/tree_tests.html'))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Now, I'll try to replace calls to min and max with local functions.\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import AVL as tr # import local copy, to not mess with the file in the path" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# %load tree_tests.py\n", | |
| "import random\n", | |
| "\n", | |
| "def test():\n", | |
| " t1 = tr.BinarySearchTree()\n", | |
| " for _ in range(int(1e6)):\n", | |
| " t1[str(_)] = _\n", | |
| " #for _ in range(int(1e5)):\n", | |
| " #t1.get(random.randint(-10000, 10000))\n", | |
| "\n", | |
| "if __name__ == '__main__':\n", | |
| " test()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler = cProfile.Profile()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "profiler.runcall(test)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| " 61854400 function calls (38691689 primitive calls) in 38.852 seconds\n", | |
| "\n", | |
| " Ordered by: standard name\n", | |
| "\n", | |
| " ncalls tottime percall cumtime percall filename:lineno(function)\n", | |
| " 1 1.338 1.338 38.852 38.852 <ipython-input-10-2f1ccca03190>:4(test)\n", | |
| " 1 0.000 0.000 0.000 0.000 AVL.py:102(__init__)\n", | |
| " 1000000 0.479 0.000 37.514 0.000 AVL.py:115(__setitem__)\n", | |
| " 1000000 0.717 0.000 37.035 0.000 AVL.py:118(put)\n", | |
| "21140998/999999 19.022 0.000 36.318 0.000 AVL.py:126(_put)\n", | |
| " 1000000 3.849 0.000 3.849 0.000 AVL.py:14(__init__)\n", | |
| " 898233 2.082 0.000 2.743 0.000 AVL.py:146(rotateLeft)\n", | |
| " 352954 0.802 0.000 1.053 0.000 AVL.py:174(rotateRight)\n", | |
| "4021711/999999 4.924 0.000 10.783 0.000 AVL.py:201(updateBalance)\n", | |
| " 919456 0.713 0.000 4.508 0.000 AVL.py:215(rebalance)\n", | |
| " 6218045 0.825 0.000 0.825 0.000 AVL.py:25(hasLeftChild)\n", | |
| " 14922953 1.838 0.000 1.838 0.000 AVL.py:28(hasRightChild)\n", | |
| " 4353400 1.122 0.000 1.122 0.000 AVL.py:31(isLeftChild)\n", | |
| " 2273086 0.540 0.000 0.540 0.000 AVL.py:34(isRightChild)\n", | |
| " 1251187 0.189 0.000 0.189 0.000 AVL.py:37(isRoot)\n", | |
| " 1251187 0.217 0.000 0.217 0.000 AVL.py:5(my_min)\n", | |
| " 1251187 0.194 0.000 0.194 0.000 AVL.py:9(my_max)\n", | |
| " 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}\n", | |
| "\n", | |
| "\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "profiler.print_stats()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "As is seen, in general is not a big deal, but calls to my_max and my_min take now 0.411 secs, before was: 5.632 - so there is an improvement. " | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "There is also line by line profilling, another method of visualization called pycallgraph and more. You can check here: http://blog.thehumangeo.com/2015/07/28/profiling-in-python/ and also there is great video from pycon here:\n", | |
| "https://www.youtube.com/watch?v=JDSGVvMwNM8 . " | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "anaconda-cloud": {}, | |
| "kernelspec": { | |
| "display_name": "Python [default]", | |
| "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.5.2" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 1 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment