Closed dezhidki closed 2 years ago
In GitLab by @Smibu on Jan 7, 2019, 14:28
Profilointi näyttää:
PATH: '/view/1'
10723816 function calls (10252487 primitive calls) in 15.593 seconds
Ordered by: cumulative time
List reduced from 3665 to 100 due to restriction <100>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 15.631 15.631 /usr/local/lib/python3.6/dist-packages/werkzeug/contrib/profiler.py:95(runapp)
1 0.000 0.000 15.630 15.630 /service/timApp/util/flask/ReverseProxied.py:22(__call__)
1 0.000 0.000 15.630 15.630 /usr/local/lib/python3.6/dist-packages/flask/app.py:2262(wsgi_app)
1 0.000 0.000 15.622 15.622 /usr/local/lib/python3.6/dist-packages/flask/app.py:1801(full_dispatch_request)
1 0.000 0.000 15.616 15.616 /usr/local/lib/python3.6/dist-packages/flask/app.py:1779(dispatch_request)
1 0.000 0.000 15.616 15.616 /service/timApp/item/routes.py:82(view_document)
1 0.001 0.001 15.616 15.616 /service/timApp/item/routes.py:182(view)
1 0.000 0.000 9.672 9.672 /usr/local/lib/python3.6/dist-packages/flask/templating.py:122(render_template)
24365/6941 0.028 0.000 9.574 0.001 {method 'join' of 'str' objects}
12 0.000 0.000 9.561 0.797 /usr/local/lib/python3.6/dist-packages/jinja2/asyncsupport.py:74(render)
12 0.000 0.000 9.560 0.797 /usr/local/lib/python3.6/dist-packages/jinja2/environment.py:993(render)
1 0.000 0.000 9.560 9.560 /usr/local/lib/python3.6/dist-packages/flask/templating.py:113(_render)
30407 0.009 0.000 9.550 0.000 /service/timApp/templates/view_html.html:5(root)
30407 0.008 0.000 9.532 0.000 /service/timApp/templates/document.html:5(root)
30407 0.008 0.000 9.516 0.000 /service/timApp/templates/item.html:5(root)
30407 0.009 0.000 9.453 0.000 /service/timApp/templates/base.html:5(root)
30390 0.009 0.000 9.422 0.000 /service/timApp/templates/base.html:215(block_body)
30358 0.011 0.000 9.411 0.000 /service/timApp/templates/view_html.html:215(block_content)
30350 0.123 0.000 9.338 0.000 /service/timApp/templates/partials/paragraphs.html:5(root)
82900 0.072 0.000 8.854 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/attributes.py:234(__get__)
16713/16690 0.040 0.000 8.836 0.001 /usr/local/lib/python3.6/dist-packages/jinja2/runtime.py:234(call)
9152/9141 0.030 0.000 8.784 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/attributes.py:579(get)
7286 0.035 0.000 8.742 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/state.py:602(_load_expired)
2342 0.003 0.000 8.685 0.004 /service/timApp/readmark/readmarkcollection.py:15(class_str)
11858 0.009 0.000 8.674 0.001 /service/timApp/readmark/readmarkcollection.py:18(yield_classes)
7286 0.064 0.000 8.671 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:804(load_scalar_attributes)
9516 0.023 0.000 8.665 0.001 /service/timApp/readmark/readmarkcollection.py:20(<genexpr>)
7289 0.076 0.000 8.287 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:192(load_on_pk_identity)
7286 0.018 0.000 8.251 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:173(load_on_ident)
7289 0.008 0.000 8.159 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:2935(one)
7289 0.085 0.000 8.151 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:2901(one_or_none)
7304 0.017 0.000 7.688 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:2990(__iter__)
7307 0.036 0.000 6.616 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:3012(_execute_and_instances)
7310 0.012 0.000 5.704 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py:882(execute)
7307 0.011 0.000 5.687 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py:267(_execute_on_connection)
7307 0.063 0.000 5.676 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py:1016(_execute_clauseelement)
1 0.036 0.036 4.150 4.150 /service/timApp/document/post_process.py:32(post_process_pars)
1 0.027 0.027 3.474 3.474 /service/timApp/plugin/pluginControl.py:60(pluginify)
7310 0.098 0.000 3.330 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py:1111(_execute_context)
41 0.001 0.000 2.523 0.062 /usr/local/lib/python3.6/dist-packages/requests/api.py:16(request)
41 0.001 0.000 2.500 0.061 /usr/local/lib/python3.6/dist-packages/requests/sessions.py:457(request)
46/41 0.002 0.000 2.434 0.059 /usr/local/lib/python3.6/dist-packages/requests/sessions.py:608(send)
7312 0.008 0.000 2.373 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py:508(do_execute)
7314 2.248 0.000 2.369 0.000 {method 'execute' of 'psycopg2.extensions.cursor' objects}
7309 0.019 0.000 2.268 0.000 <string>:1(<lambda>)
7309 0.023 0.000 2.249 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py:379(compile)
27 0.001 0.000 2.243 0.083 /service/timApp/plugin/containerLink.py:88(call_plugin_generic)
7309 0.017 0.000 2.226 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py:444(_compiler)
7309 0.060 0.000 2.209 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/compiler.py:393(__init__)
210 0.001 0.000 2.173 0.010 /usr/lib/python3.6/socket.py:572(readinto)
7309 0.028 0.000 2.137 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/compiler.py:180(__init__)
7316/7309 0.010 0.000 2.109 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/compiler.py:244(process)
140475/7309 0.167 0.000 2.099 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/visitors.py:75(_compiler_dispatch)
7314/7309 0.083 0.000 2.079 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/compiler.py:1727(visit_select)
9 0.001 0.000 1.581 0.176 /service/timApp/plugin/containerLink.py:211(render_plugin_multi)
23428 0.096 0.000 1.286 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:32(instances)
133 0.000 0.000 1.246 0.009 /usr/local/lib/python3.6/dist-packages/requests/models.py:815(content)
483/407 0.002 0.000 1.246 0.003 {method 'join' of 'bytes' objects}
206 0.000 0.000 1.244 0.006 /usr/local/lib/python3.6/dist-packages/requests/models.py:746(generate)
206 0.001 0.000 1.244 0.006 /usr/local/lib/python3.6/dist-packages/urllib3/response.py:473(stream)
128 0.002 0.000 1.238 0.010 /usr/local/lib/python3.6/dist-packages/urllib3/response.py:404(read)
209 1.231 0.006 1.233 0.006 /usr/local/lib/python3.6/dist-packages/gevent/_socket3.py:426(recv_into)
128 0.001 0.000 1.231 0.010 /usr/lib/python3.6/http/client.py:438(read)
128 0.001 0.000 1.230 0.010 /usr/lib/python3.6/http/client.py:470(readinto)
128 0.001 0.000 1.227 0.010 {method 'readinto' of '_io.BufferedReader' objects}
7314 0.042 0.000 1.175 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/compiler.py:1797(<listcomp>)
46 0.001 0.000 1.156 0.025 /usr/local/lib/python3.6/dist-packages/requests/adapters.py:394(send)
51572 0.181 0.000 1.134 0.000 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/compiler.py:1499(_label_select_column)
ja tuosta kiinnostavia ovat rivit
9152/9141 0.030 0.000 8.784 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/attributes.py:579(get)
7286 0.035 0.000 8.742 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/state.py:602(_load_expired)
2342 0.003 0.000 8.685 0.004 /service/timApp/readmark/readmarkcollection.py:15(class_str)
11858 0.009 0.000 8.674 0.001 /service/timApp/readmark/readmarkcollection.py:18(yield_classes)
7286 0.064 0.000 8.671 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:804(load_scalar_attributes)
9516 0.023 0.000 8.665 0.001 /service/timApp/readmark/readmarkcollection.py:20(<genexpr>)
7289 0.076 0.000 8.287 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:192(load_on_pk_identity)
7286 0.018 0.000 8.251 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/loading.py:173(load_on_ident)
7289 0.008 0.000 8.159 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:2935(one)
7289 0.085 0.000 8.151 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:2901(one_or_none)
7304 0.017 0.000 7.688 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:2990(__iter__)
7307 0.036 0.000 6.616 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/orm/query.py:3012(_execute_and_instances)
7310 0.012 0.000 5.704 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py:882(execute)
7307 0.011 0.000 5.687 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/elements.py:267(_execute_on_connection)
7307 0.063 0.000 5.676 0.001 /usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py:1016(_execute_clauseelement)
eli jostain syystä ikään kuin jokainen lukumerkintä aiheuttaa tietokantahaun, vaikka lukumerkinnät ladataan yhdellä kyselyllä.
Debuggauksen perusteella lukumerkinnän type
-attribuutin lukeminen aiheuttaa tuon kyselyn. Tutkin vielä, miksi niin käy.
In GitLab by @Smibu on Jan 7, 2019, 19:13
Vika korjattu stack-haaraan. Vika oli, että pyynnön aikana tehtiin commit, joka expiroi kaikki sqlalchemy-oliot, jolloin kunkin lukumerkintäolion attribuutit haettiin uudestaan kannasta. Jos lukumerkintöjä oli paljon, niin tuo hidastui paljon.
Esim. https://timdevs5.it.jyu.fi/view/1 on nyt vesal-tunnarillakin 5 sek luokkaa. Päivitin betalle myös.
In GitLab by @vesal on Jan 7, 2019, 19:43
Esim. https://timdevs5.it.jyu.fi/view/1 on nyt vesal-tunnarillakin 5 sek luokkaa. Päivitin betalle myös.
Hyvä :-)
betassa näköjään 4 sek luokkaa. Nyt niitä paljon lukumerkinnän juttuja voi ruveta tuleman kun painotin luennolla että klikatkaa ne punaiset pois rattaan takaa.
DOM content on kuitenkin liki 9 sek, eli tuolla JS päässä on aikojen saatossa tapahtunut paljon hidastumista kun koko moniste tuli joskus huonommassa koneessa alle 5 sek. Nyt RUSTilla tuosta voi leikata 3 sek pois (???). Tosin hyvä puoli sitten on se, että palvelimen kapasitettitarvetta saa tuolla pudotettu aika paljon ja loppu jää selaimen murheeksi.
Tosin työpaikalla DOM content näyttäisi olevan 6.25 sek, eli mulla kotono n. 3 sek menee hitaan bingin takia, eli jokainen uusi pyyntö lisääntyy vähintään bingin verran ja niitä pyyntöjä tulee paljon. Yksi pieni stylesheet voi olla 180 ms kun se työpaikan koneella on 45 ms. video.png 45 ms vs 8 ms jne.
Eli varmaan jos mun kotikonetta haluaisi optimoida, niin kannattaisi cacheta html:ään image-tagin sisään se kuva data urlina ja lähettää kaikki css:ät yhtenä kasana. Tosin näyttäisi että nyktkin tuo n. 8 asiaa lataa yhtäaikaa.
KOtikoneella on n. 2 sek tauko 6.2 sek ja 7.8 sek välillä jolloin ei oe mitään verkkoliikennettä. Työkoneella (jossa ehkä 50% parempi prossu) on tauko 4.8 ja vajaa 6 sek välillä. Saako muuten noita Chromella aikapalkkista maalattuja aikoja lukuina mistään?
Vesa
In GitLab by @Smibu on Jan 14, 2019, 09:22
Saako muuten noita Chromella aikapalkkista maalattuja aikoja lukuina mistään?
En ainakaan löytänyt äkkiseltään mitään.
In GitLab by @Smibu on Jan 14, 2019, 09:22
closed
In GitLab by @vesal on Dec 19, 2018, 14:55
Jollakin muulla tunnuksella sivun luominen kestä 5 sek, vesal tunnuksella 13 sek.