From 42b87acb5569b2eb80fd1676a1ca39f6518d3d47 Mon Sep 17 00:00:00 2001 From: nicolargo Date: Sun, 10 Nov 2024 13:59:42 +0100 Subject: [PATCH] Update profiling --- Makefile | 11 +- docs/_static/glances-cgraph.svg | 3062 +++++++++++++----------- docs/_static/glances-flame.svg | 106 +- docs/_static/glances-pyinstrument.html | 21 +- run-venv.py | 9 + 5 files changed, 1803 insertions(+), 1406 deletions(-) create mode 100755 run-venv.py diff --git a/Makefile b/Makefile index c9562eb7..63779405 100644 --- a/Makefile +++ b/Makefile @@ -138,7 +138,7 @@ endef profiling-gprof: CPROF = glances.cprof profiling-gprof: ## Callgraph profiling (need "apt install graphviz") $(DISPLAY-BANNER) - $(PYTHON) -m cProfile -o $(CPROF) run.py --stop-after $(TIMES) + $(PYTHON) -m cProfile -o $(CPROF) run-venv.py --stop-after $(TIMES) $(venv_dev)/gprof2dot -f pstats $(CPROF) | dot -Tsvg -o $(OUT_DIR)/glances-cgraph.svg rm -f $(CPROF) @@ -147,9 +147,9 @@ profiling-pyinstrument: ## PyInstrument profiling $(PIP) install pyinstrument $(PYTHON) -m pyinstrument -r html -o $(OUT_DIR)/glances-pyinstrument.html -m glances --stop-after $(TIMES) -profiling-pyspy: ## Flame profiling (currently not compatible with Python 3.12) +profiling-pyspy: ## Flame profiling $(DISPLAY-BANNER) - $(venv_dev)/py-spy record -o $(OUT_DIR)/glances-flame.svg -d 60 -s -- $(PYTHON) run.py --stop-after $(TIMES) + $(venv_dev)/py-spy record -o $(OUT_DIR)/glances-flame.svg -d 60 -s -- $(PYTHON) run-venv.py --stop-after $(TIMES) profiling: profiling-gprof profiling-pyinstrument profiling-pyspy ## Profiling of the Glances software @@ -162,15 +162,16 @@ memory-leak: ## Profile memory leaks memory-profiling: TIMES = 2400 memory-profiling: PROFILE = mprofile_*.dat +memory-profiling: OUT_DIR = docs/_static memory-profiling: ## Profile memory usage @echo "It's a very long test (~4 hours)..." rm -f $(PROFILE) @echo "1/2 - Start memory profiling with the history option enable" - $(venv_dev)/mprof run -T 1 -C run.py -C $(CONF) --stop-after $(TIMES) --quiet + $(venv_dev)/mprof run -T 1 -C run-venv.py -C $(CONF) --stop-after $(TIMES) --quiet $(venv_dev)/mprof plot --output $(OUT_DIR)/glances-memory-profiling-with-history.png rm -f $(PROFILE) @echo "2/2 - Start memory profiling with the history option disable" - $(venv_dev)/mprof run -T 1 -C run.py -C $(CONF) --disable-history --stop-after $(TIMES) --quiet + $(venv_dev)/mprof run -T 1 -C run-venv.py -C $(CONF) --disable-history --stop-after $(TIMES) --quiet $(venv_dev)/mprof plot --output $(OUT_DIR)/glances-memory-profiling-without-history.png rm -f $(PROFILE) diff --git a/docs/_static/glances-cgraph.svg b/docs/_static/glances-cgraph.svg index 2dbf95b0..e6234d78 100644 --- a/docs/_static/glances-cgraph.svg +++ b/docs/_static/glances-cgraph.svg @@ -4,1452 +4,1752 @@ - - + + %3 - - + + -13 - - -~:0:<method 'acquire' of '_thread.lock' objects> -7.90% -(0.11%) -6768× +16 + + +model:1149:wrapper +16.36% +(0.02%) +459× + + + + + +324 + + +__init__:152:update +6.26% +(0.00%) +16× + + + + + +16->324 + + +6.26% +16× + + + +821 + + +__init__:105:update +1.08% +(0.00%) +16× + + + + + +16->821 + + +0.35% + + + + +1900 + + +__init__:71:update +1.99% +(0.00%) +16× + + + + + +16->1900 + + +1.99% +16× + + + +2501 + + +__init__:77:update +2.80% +(0.00%) +16× + + + + + +16->2501 + + +1.40% + + + + +2785 + + +__init__:133:update +0.51% +(0.00%) +16× + + + + + +16->2785 + + +0.51% +16× + + + +266 + + +multipass:92:update +6.26% +(0.00%) +16× + + + + + +324->266 + + +6.26% +16× + + + +152 + + +processes:405:update +2.80% +(0.06%) +16× + + + + + +2501->152 + + +1.40% + + + + +2713 + + +__init__:155:get_stats_for_local_input +0.51% +(0.00%) +16× + + + + + +2785->2713 + + +0.51% +16× + + + +29 + + +__init__:1491:process_iter +2.26% +(0.03%) +7192× + + + + + +1353 + + +__init__:545:as_dict +2.18% +(0.18%) +7184× + + + + + +29->1353 + + +1.09% +3596× + + + +34 + + +selectors:402:select +7.59% +(0.00%) +96× + + + + + +60 + + +~:0:<method 'poll' of 'select.poll' objects> +7.59% +(6.66%) +126× + + + + + +34->60 + + +0.49% + + + + +37 + + +subprocess:1165:communicate +8.07% +(0.00%) +53× + + + + + +38 + + +subprocess:2062:_communicate +7.58% +(0.00%) +48× + + + + + +37->38 + + +0.49% + + + + +38->34 + + +0.49% + + + + +194 + + +_pslinux:853:get_proc_inodes +0.96% +(0.13%) +7190× + + + + + +38->194 + + +0.25% +2250× + + + +284 + + +_pslinux:212:readlink +0.65% +(0.12%) +60818× + + + + + +194->284 + + +0.44% +60763× + + + +39 + + +_pslinux:1495:sensors_fans +0.98% +(0.00%) + - -42 - - -__init__:1460:process_iter -7.14% -(0.03%) -6971× - - - - - -13->42 - - -0.15% -362× - - - -15 - - -threading:973:start -3.09% -(0.01%) -907× - - - - - -989 - - -standalone:138:__serve_once -62.18% -(0.00%) -31× - - - - - -15->989 - - -43.99% - - - - -366 - - -stats:268:update -33.63% -(0.01%) -31× - - - - - -989->366 - - -0.61% - - - - -16 - - -_pslinux:1711:wrapper -3.96% -(0.19%) -124176× - - - - - -18 - - -glances_curses:361:__catch_key -100.00% -(0.01%) -562× - - - - - -2002 - - -glances_curses:356:get_key -99.99% -(0.01%) -562× - - - - - -18->2002 - - -0.35% - - - - -463 - - -client:345:_stream_helper -51.19% -(0.00%) -129× - - - - - -2002->463 - - -0.79% - - - - -3587 - - -~:0:<method 'getch' of '_curses.window' objects> -47.10% -(78.05%) -561× - - - - - -2002->3587 - - -0.35% - - - - -19 - - -model:1165:wrapper -6.36% -(0.01%) -684× - - - - - -19->15 - - -0.13% -44× - - - -21 - - -connectionpool:598:urlopen -3.23% -(0.00%) -125× - - - - - -22 - - -__init__:518:msg_curse -0.84% -(0.02%) -30× - - - - - -331 - - -__init__:423:get_process_curses_data -0.86% -(0.27%) -13042× - - - - - -22->331 - - -0.19% -3016× - - - -22->463 - - -0.77% - - - - -23 - - -json_stream:10:stream_as_text -50.47% -(0.00%) -65× - - - - - -24 - - -api:62:get -2.62% -(0.00%) - - - - - -25 - - -model:1183:wrapper -6.39% -(0.02%) -650× +42 + + +client:1082:_send_output +4.66% +(0.00%) +35× - - -25->42 - - -0.47% -165× - - - -78 - - -threading:1115:join -6.08% -(0.00%) -900× - - - - - -25->78 - - -0.35% -26× - - - -31 - - -_pslinux:2362:gids -0.92% -(0.03%) -6956× - - - - - -34 - - -__init__:322:__init__ -1.16% -(0.01%) -6962× - - - - - -36 - - -threading:637:wait -2.85% -(0.02%) -906× - - - - - -36->42 - - -0.14% -62× - - + 44 - - -glances_curses:1166:update -34.06% -(0.01%) -31× + + +glances_curses:265:__catch_key +90.24% +(0.01%) +525× - - -36->44 - - -1.69% - - - - -105 - - -~:0:<method 'read' of '_io.BufferedReader' objects> -1.99% -(2.96%) -26973× + + +273 + + +glances_curses:234:get_key +90.24% +(0.00%) +525× - + -36->105 - - -0.19% - +44->273 + + +2.80% +18× - - -44->18 - - -0.35% - - - - -2402 - - -glances_curses:1152:flush -0.97% -(0.02%) -30× + + +3966 + + +~:0:<method 'getch' of '_curses.window' objects> +90.23% +(81.14%) +525× - - -44->2402 - - -0.20% - - - - -41 - - -threading:323:wait -2.45% -(0.12%) -906× - - - - - -41->18 - - -6.07% - - - - -64 - - -_common:838:bcat -3.50% -(0.04%) -20110× - - - - - -41->64 - - -0.17% -20× - - - -77 - - -_common:821:cat -2.04% -(0.07%) -21504× - - - - - -64->77 - - -0.23% -181× - - - -43 - - -__init__:644:name -0.82% -(0.02%) -6955× - - - - - -2020 - - -glances_curses:616:display -0.95% -(0.00%) -30× - - - - - -2402->2020 - - -0.19% - + + +273->3966 + + +2.80% +18× - + 46 - - -_pslinux:1766:_parse_stat_file -0.86% -(0.08%) -13917× + + +__init__:358:update +2.68% +(0.00%) +16× - + 47 - - -_pslinux:1847:cmdline -0.64% -(0.03%) -4180× + + +thread:53:run +2.70% +(0.00%) +32× - - -49 - - -client:463:read -50.06% -(0.00%) -131× + + +283 + + +_common:849:bcat +4.04% +(0.03%) +19459× - - -49->18 - - -0.70% - - - - -51 - - -response:790:_fp_read -50.06% -(0.00%) -130× - - - - - -52 - - -response:899:read -50.21% -(0.00%) -129× - - - - - -52->18 - - -0.70% - - - - -56 - - -glances_batpercent:61:update -1.17% -(0.00%) - - - - - - -57 - - -sessions:593:get -0.79% -(0.00%) -122× - - - - - -58 - - -stats:262:__update_plugin -7.15% -(0.01%) -868× - - - - - -58->42 - - -0.16% -418× - - - -59 - - -client:537:_read_next_chunk_size -37.88% -(0.02%) -66× - - - - - -59->18 - - -1.11% -13× - - - -60 - - -client:1320:endheaders -2.73% -(0.00%) -126× - - - - - -63 - - -_common:787:open_binary -1.56% -(0.08%) -41863× - - - - - -77->105 - - -0.22% -85× - - - -69 - - -_pslinux:1943:create_time -1.07% -(0.02%) -6962× - - - - - -72 - - -__init__:746:create_time -1.10% -(0.01%) -6962× - - - - - -73 - - -socket:693:readinto -3.13% -(0.04%) -186× - - - - - -74 - - -__init__:600:is_running -0.77% -(0.02%) -6516× - - - - - -74->42 - - -0.13% -409× - - - -75 - - -_common:487:wrapper -2.88% -(0.11%) -71302× - - - - - -82 - - -~:0:<built-in method _io.open> -1.02% -(0.55%) -47975× - - - - - -86 - - -images:317:get -0.66% -(0.00%) -60× - - - - - -88 - - -client:591:_read_chunked -50.05% -(0.01%) -129× - - - - - -88->989 - - -10.03% -26× - - - -89 - - -client:1082:_send_output -2.72% -(0.01%) -126× - - - - - -92 - - -response:847:_raw_read -50.07% -(0.01%) -130× - - - - - -93 - - -connectionpool:380:_make_request -3.20% -(0.00%) -125× - - - - - -97 - - -client:567:_get_chunk_left -41.95% -(0.00%) -130× - - - - - -98 - - -__init__:717:cmdline -1.01% -(0.00%) -4180× - - - - - -106 - - -__init__:325:_init -1.14% -(0.04%) -6962× - - - - - -118 - - -~:0:<method 'recv_into' of '_socket.socket' objects> -3.12% -(4.87%) -185× - - - - - -122 - - -~:0:<method 'readline' of '_io.BufferedReader' objects> -3.20% -(0.06%) -8584× - - - - - -123 - - -~:0:<method 'read' of '_io.TextIOWrapper' objects> -0.64% -(0.41%) -5634× - - - - - -124 - - -~:0:<built-in method time.sleep> -2.61% -(4.72%) -66× - - - - - -133 - - -client:1027:send -2.72% -(0.04%) -126× - - - - - -136 - - -sessions:673:send -3.31% -(0.01%) -125× - - - - - -143 - - -__init__:424:get -2.88% -(0.00%) -16× - - - - - -144 - - -decorators:38:inner -0.94% -(0.00%) -122× - - - - - -145 - - -client:234:_get -0.85% -(0.00%) -122× - - - - - -146 - - -decorators:9:wrapped -0.84% -(0.00%) -91× - - - - - -151 - - -_pslinux:1954:memory_info -0.59% -(0.07%) -6955× - - - - - -152 - - -_pslinux:1800:_read_status_file -0.80% -(0.02%) -6959× - - - - - -163 - - -__init__:1093:memory_info -0.64% -(0.01%) -6955× - - - - - -165 - - -threading:1153:_wait_for_tstate_lock -6.08% -(0.00%) -901× - - - - - -267 - - -__init__:523:as_dict -4.23% -(0.21%) -6958× - - - - - -278 - - -_pslinux:1492:sensors_fans -1.93% -(0.00%) -17× - - + + +47->283 + + +0.12% +13× - + 295 - - -processes:399:update -3.13% -(0.03%) -16× + + +_common:832:cat +4.03% +(0.05%) +20197× + + + + + +283->295 + + +0.40% +1938× + + + +48 + + +__init__:343:__fetch_psutil +3.04% +(0.00%) +18× + + + + + +191 + + +__init__:2281:sensors_temperatures +2.99% +(0.00%) + + + + + + +48->191 + + +0.31% + + + + +199 + + +_pslinux:1377:sensors_temperatures +2.98% +(0.01%) + + + + + + +191->199 + + +0.31% + + + + +152->29 + + +1.15% +3604× + + + +153 + + +threading:1016:_bootstrap +10.79% +(0.00%) +70× + + + + + +153->29 + + +0.12% +430× + + + +927 + + +stats:256:__update_plugin +16.75% +(0.01%) +930× + + + + + +153->927 + + +0.11% +40× + + + +927->16 + + +0.12% +62× + + + +156 + + +~:0:<method 'acquire' of '_thread.lock' objects> +4.06% +(0.01%) +740× + + + + + +158 + + +<frozen importlib:1304:_find_and_load_unlocked +0.95% +(0.00%) +668× + + + + + +443 + + +<frozen importlib:911:_load_unlocked +0.94% +(0.00%) +638× + + + + + +158->443 + + +0.94% +38× + + + +1692 + + +stats:262:update +11.68% +(0.00%) +31× + + + + + +158->1692 + + +1.71% + + + + +842 + + +<frozen importlib:989:exec_module +0.94% +(0.00%) +589× + + + + + +443->842 + + +0.94% +38× + + + +1692->44 + + +2.33% +15× + + + +1692->927 + + +2.26% +46× + + + +164 + + +threading:1056:_bootstrap_inner +8.75% +(0.00%) +70× + + + + + +164->283 + + +0.34% +39× + + + +199->283 + + +0.30% +166× + + + +240 + + +__init__:46:update +2.44% +(0.00%) +16× + + + + + +241 + + +__init__:424:get_process_curses_data +1.43% +(0.28%) +13459× + + + + + +246 + + +battery:106:update +2.11% +(0.00%) + + + + + + +250 + + +thread:69:_worker +2.70% +(0.00%) +32× + + + + + +250->283 + + +0.24% +26× + + + +264 + + +amp:184:update_wrapper +2.44% +(0.00%) +32× + + + + + +265 + + +__init__:141:__get_sensor_data +2.70% +(0.00%) +32× + + + + + +397 + + +multipass:34:update_version +2.60% +(0.00%) +16× + + + + + +266->397 + + +2.60% +16× + + + +398 + + +multipass:48:update_info +3.66% +(0.00%) +16× + + + + + +266->398 + + +3.66% +16× + + + +329 + + +secure:17:secure_popen +8.61% +(0.00%) +48× + + + + + +397->329 + + +2.60% +16× + + + +398->329 + + +3.66% +16× + + + +1897 + + +~:0:<method 'read' of '_io.BufferedReader' objects> +3.89% +(2.65%) +27005× + + + + + +295->1897 + + +0.37% +1843× + + + +286 + + +_pslinux:879:get_all_inodes +0.97% +(0.01%) +16× + + + + + +289 + + +__init__:2321:sensors_fans +1.08% +(0.00%) + - + 304 - - -connection:324:request -2.77% -(0.00%) -125× - - - - - -305 - - -__init__:215:update -0.53% -(0.00%) -30× + + +threading:1115:join +4.16% +(0.00%) +32× - + 307 - - -adapters:434:send -3.27% -(0.00%) -125× + + +threading:999:run +4.35% +(0.00%) +65× - - -326 - - -__init__:385:build_sensors_list -2.47% -(0.01%) -32× + + +307->283 + + +0.26% +39× + + + +322 + + +model:1131:wrapper +16.27% +(0.01%) +746× - - -326->64 - - -0.33% - - - - -332 - - -__init__:165:update -2.48% -(0.00%) - + + +325 + + +__init__:519:msg_curse +1.48% +(0.02%) +30× - - -333 - - -battery:106:update -1.22% -(0.00%) - - - - - - -347 - - -__init__:124:__get_fan_speed -2.41% -(0.00%) - - - - - - -348 - - -__init__:140:__get_bat_percent -1.18% -(0.00%) - - - - - - -349 - - -__init__:369:__update__ -2.47% -(0.00%) -16× - - - - - -350 - - -containers:33:image -0.67% -(0.00%) -60× - - - - - -351 - - -__init__:78:update -3.13% -(0.00%) -16× - - - - - -352 - - -image:234:inspect_image -0.64% -(0.00%) -60× - - - - - -358 - - -sessions:502:request -3.33% -(0.00%) -125× - - - - - -366->18 - - -19.26% -20× - - - -378 - - -__init__:2327:sensors_fans -2.50% -(0.00%) -17× - - - - - -379 - - -__init__:1483:add -2.64% -(0.00%) -441× - - - - - -382 - - -__init__:776:gids -1.03% -(0.01%) -6956× - - - - - -409 - - -__init__:116:__get_temperature -2.26% -(0.00%) - - - - - - -745 - - -connection:27:create_connection -2.62% -(0.00%) - - - - - - -998 - - -__init__:154:run -2.62% -(0.00%) - - - - - - -1000 - - -__init__:160:update -1.07% -(0.00%) -30× - - - - - -1450 - - -model:916:get_stats_display -0.89% -(0.00%) -960× - - - - - -1450->22 - - -0.17% - - - - -1534 - - -api:14:request -2.62% -(0.00%) - - - - - - -1640 - - -glances_batpercent:97:update -1.17% -(0.00%) - - - - - - -1647 - - -json_stream:51:split_buffer -50.52% -(0.00%) -65× - - - - - -1678 - - -glances_curses:581:__get_stat_display -0.89% -(0.00%) -30× - - - - - -1678->1450 - - -0.18% -198× - - - -1772 - - -~:0:<method 'connect' of '_socket.socket' objects> -2.62% -(0.13%) -17× - - - - + -2020->1678 - - -0.18% - +325->241 + + +1.43% +13459× - - -2485 - - -connection:192:_new_conn -2.62% -(0.00%) - + + +700 + + +secure:33:__secure_popen +8.58% +(0.00%) +48× - + + +329->700 + + +0.50% + + + + +700->37 + + +6.21% +32× + + + +356 + + +<frozen importlib:1349:_find_and_load +0.95% +(0.01%) +670× + + + + + +356->158 + + +0.94% +37× + + + +386 + + +sessions:673:send +4.79% +(0.00%) +34× + + + + + +1311 + + +<frozen importlib:480:_call_with_frames_removed +0.93% +(0.00%) +1400× + + + + + +842->1311 + + +0.93% +39× + + + +447 + + +client:1027:send +4.66% +(0.00%) +35× + + + + + +473 + + +__init__:167:update +2.92% +(0.00%) + + + + + + +546 + + +sessions:500:request +4.86% +(0.00%) +34× + + + + + +597 + + +_pslinux:1026:retrieve +1.05% +(0.00%) +16× + + + + + +604 + + +glances_batpercent:98:update +2.03% +(0.00%) + + + + + + +607 + + +glances_batpercent:62:update +2.13% +(0.00%) + + + + + + +662 + + +connection:27:create_connection +4.66% +(0.00%) + + + + + + +823 + + +_pslinux:1065:net_connections +1.06% +(0.00%) +16× + + + + + +824 + + +__init__:2179:net_connections +1.07% +(0.00%) +16× + + + + + +1343 + + +~:0:<built-in method builtins.exec> +100.00% +(0.04%) +830× + + + + + +1311->1343 + + +0.93% +40× + + + +853 + + +__init__:143:main +99.83% +(0.00%) + + + + + + +2215 + + +__init__:77:start +99.79% +(0.00%) + + + + + + +853->2215 + + +99.79% + + + + +2215->356 + + +0.27% + + + + +860 + + +connectionpool:598:urlopen +4.77% +(0.00%) +34× + + + + + +862 + + +adapters:613:send +4.78% +(0.00%) +34× + + + + + +867 + + +api:62:get +4.66% +(0.00%) + + + + + + +883 + + +__init__:73:import_module +0.51% +(0.00%) +39× + + + + + +2214 + + +<frozen importlib:1375:_gcd_import +0.51% +(0.00%) +40× + + + + + +883->2214 + + +0.51% +32× + + + +2214->356 + + +0.51% +32× + + + +1736 + + +run-venv:1:<module> +100.00% +(0.00%) + + + + + + +1343->1736 + + +100.00% + + + + +1736->356 + + +0.17% + + + + +1736->853 + + +99.83% + + + + +1368 + + +stats:95:_load_plugin +1.00% +(0.00%) +33× + + + + + +1368->883 + + +0.50% +31× + + + +1373 + + +connectionpool:380:_make_request +4.75% +(0.00%) +34× + + + + + +1385 + + +api:14:request +4.66% +(0.00%) + + + + + + +1449 + + +model:882:get_stats_display +1.57% +(0.00%) +990× + + + + + +1449->325 + + +1.48% +30× + + + +1681 + + +glances_curses:466:__get_stat_display +1.57% +(0.00%) +30× + + + + + +1681->1449 + + +1.56% +960× + + + +1691 + + +glances_curses:1083:update +90.94% +(0.02%) +30× + + + + + +1691->44 + + +2.80% +18× + + + +2507 + + +glances_curses:1069:flush +1.77% +(0.02%) +30× + + + + + +1691->2507 + + +1.77% +30× + + + +2505 + + +glances_curses:501:display +1.74% +(0.00%) +30× + + + + + +2507->2505 + + +1.74% +30× + + + +1775 + + +~:0:<method 'connect' of '_socket.socket' objects> +4.66% +(0.07%) +14× + + + + + +1791 + + +connection:324:request +4.67% +(0.00%) +34× + + + + + +1793 + + +queue:92:qsize +0.79% +(0.17%) +184579× + + + + + +1865 + + +threading:1153:_wait_for_tstate_lock +4.15% +(0.00%) +34× + + + + + +1895 + + +~:0:<built-in method _io.open> +0.52% +(0.41%) +47125× + + + + + +1953 + + +_pslinux:1714:wrapper +1.69% +(0.17%) +127711× + + + + + +2395 + + +_common:498:wrapper +1.05% +(0.10%) +73134× + + + + + +1953->2395 + + +0.36% +26058× + + + +2048 + + +thread:219:shutdown +2.78% +(0.00%) + + + + + + +2102 + + +_base:646:__exit__ +2.92% +(0.00%) + + + + + + +2103 + + +battery:35:__init__ +2.20% +(0.00%) + + + + + + +2177 + + +connection:192:_new_conn +4.66% +(0.00%) + + + + + + +2301 + + +connection:237:connect +4.66% +(0.00%) + + + + + + +2304 + + +client:1320:endheaders +4.66% +(0.00%) +35× + + + + + +2321 + + +__init__:243:get +0.50% +(0.00%) + + + + + + +2403 + + +standalone:136:__serve_once +99.52% +(0.00%) +30× + + + + + +2403->1691 + + +11.80% + + + + +2469 + + +__init__:259:_get_ip_public_info +0.50% +(0.00%) + + + + + + +2491 + + +standalone:174:serve_n +99.52% +(0.00%) + + + + + -2493 - - -connection:237:connect -2.62% -(0.00%) - +2503 + + +standalone:31:__init__ +1.71% +(0.00%) + + + + + + +2505->1681 + + +1.57% +30× + + + +2707 + + +__init__:115:get_public_ip +0.51% +(0.00%) +16× + + + + + +2707->2321 + + +0.50% + + + + +2713->2707 + + +0.51% +16× + + + +2714 + + +__init__:153:run +4.66% +(0.00%) + + + + + + +4174 + + +standalone:181:serve_forever +99.52% +(0.00%) + diff --git a/docs/_static/glances-flame.svg b/docs/_static/glances-flame.svg index 21dea0df..5977d546 100644 --- a/docs/_static/glances-flame.svg +++ b/docs/_static/glances-flame.svg @@ -1,5 +1,5 @@ - \ No newline at end of file diff --git a/docs/_static/glances-pyinstrument.html b/docs/_static/glances-pyinstrument.html index 0b47ad29..41b20e58 100644 --- a/docs/_static/glances-pyinstrument.html +++ b/docs/_static/glances-pyinstrument.html @@ -6,15 +6,26 @@
- - diff --git a/run-venv.py b/run-venv.py new file mode 100755 index 00000000..4048c42d --- /dev/null +++ b/run-venv.py @@ -0,0 +1,9 @@ +#!./venv/bin/python +import re +import sys + +from glances import main + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main())