CI
github-actions:test
12 runs
Average
114 ms
median 122 ms
max 145 ms
max 145 ms
Phases
Setup 0.66 ms
Call 113 ms
Teardown 0.19 ms
Categories
Database 73 ms
App code 5 ms
Other (Libraries, Templates, Deep copies, Unsampled, ...) 35 ms
66 database queries per run
Needs 68 KB of memory (max 512 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
call123 ms99.3%
ProjectPagesTest.test_test_pageapps/projects/tests.py:1028 response = self.client.get(self.project.url("project_test", self.real_test.slug))65 ms52.5%
Client.getdjango/test/client.py:112465 ms52.5%
RequestFactory.getdjango/test/client.py:47565 ms52.5%
RequestFactory.genericdjango/test/client.py:67165 ms52.5%
Client.requestdjango/test/client.py:108261 ms49.7%
ClientHandler.__call__django/test/client.py:18644 ms35.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14144 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13044 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30944 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12344 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3442 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19842 ms34.1%
project_testapps/projects/urls.py:286 context = shell(request, project, "tests") | filters(request, project, default_days=90)11 ms8.5%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {9 ms7.1%
org_shellapps/orgs/views.py:429 ms7.1%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()9 ms7.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:875 ms4.3%
QuerySet.filterdjango/db/models/query.py:15424 ms2.8%
QuerySet._filter_or_excludedjango/db/models/query.py:15604 ms2.8%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15704 ms2.8%
Query.add_qdjango/db/models/sql/query.py:16714 ms2.8%
Query._add_qdjango/db/models/sql/query.py:17034 ms2.8%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.4%
Query.setup_joinsdjango/db/models/sql/query.py:19772 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15992 ms1.4%
Query.trim_joinsdjango/db/models/sql/query.py:20222 ms1.4%
QuerySet.filterdjango/db/models/query.py:15412 ms1.4%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:20742 ms1.4%
QuerySet.querydjango/db/models/query.py:3062 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
QuerySet.existsdjango/db/models/query.py:13374 ms2.8%
Query.has_resultsdjango/db/models/sql/query.py:6814 ms2.8%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15924 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.4%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.4%
RelatedLookupMixin.as_sqldjango/db/models/fields/related_lookups.py:1282 ms1.4%
Exact.as_sqldjango/db/models/lookups.py:4072 ms1.4%
BuiltinLookup.as_sqldjango/db/models/lookups.py:2382 ms1.4%
BuiltinLookup.process_lhsdjango/db/models/lookups.py:2302 ms1.4%
Lookup.process_lhsdjango/db/models/lookups.py:1092 ms1.4%
BaseExpression.resolve_expressiondjango/db/models/expressions.py:2972 ms1.4%
BaseExpression.copydjango/db/models/expressions.py:4442 ms1.4%
copy<stdlib>/copy.py:1002 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
shellapps/projects/urls.py:732 ms1.4%
can_manageapps/projects/urls.py:442 ms1.4%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()2 ms1.4%
QuerySet.existsdjango/db/models/query.py:13372 ms1.4%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.4%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2112 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms1.4%
project_testapps/projects/urls.py:3127 ms5.7%
flakiness_for_testapps/projects/flakiness.py:326 history = observations_for(test.project, [test.id], since).get(test.id, [])7 ms5.7%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.4%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.4%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.4%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2552 ms1.4%
SQLCompiler.get_default_columnsdjango/db/models/sql/compiler.py:10302 ms1.4%
observations_forapps/projects/flakiness.py:165 test_runs = list(test_runs)2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ValuesListIterable.__iter__django/db/models/query.py:2372 ms1.4%
Query.get_compilerdjango/db/models/sql/query.py:3702 ms1.4%
observations_forapps/projects/flakiness.py:169 for row in Session.objects.filter(id__in={row[4] for row in test_runs}).values_list(2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.4%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.4%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.4%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.4%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.4%
SQLCompiler.quote_name_unless_aliasdjango/db/backends/postgresql/compiler.py:342 ms1.4%
SQLCompiler.quote_name_unless_aliasdjango/db/models/sql/compiler.py:5692 ms1.4%
observations_forapps/projects/flakiness.py:186 perfs = list(perfs)2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.4%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
project_testapps/projects/urls.py:3095 ms4.3%
render_call_treeapps/projects/profiles.py:6955 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.<genexpr>apps/projects/profiles.py:6955 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
format_html_join.<locals>.<genexpr>django/utils/html.py:1645 ms4.3%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6795 ms4.3%
render_call_tree.<locals>.renderapps/projects/profiles.py:6795 ms4.3%
format_html_joindjango/utils/html.py:1585 ms4.3%
project_testapps/projects/urls.py:3115 ms4.3%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)4 ms2.8%
QuerySet.__iter__django/db/models/query.py:3904 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.8%
ModelIterable.__iter__django/db/models/query.py:954 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:794 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
project_testapps/projects/urls.py:2954 ms2.8%
latest_perfapps/projects/analytics.py:846 return perfs.select_related("profile", "environment").order_by("-date").first()4 ms2.8%
QuerySet.firstdjango/db/models/query.py:11454 ms2.8%
QuerySet.__iter__django/db/models/query.py:3904 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.8%
ModelIterable.__iter__django/db/models/query.py:954 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms1.4%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms1.4%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms1.4%
Expression.__hash__django/db/models/expressions.py:5622 ms1.4%
cached_property.__get__django/utils/functional.py:472 ms1.4%
Expression.identitydjango/db/models/expressions.py:5522 ms1.4%
Expression._identitydjango/db/models/expressions.py:5362 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
project_testapps/projects/urls.py:3004 ms2.8%
latest_documentapps/projects/profiles.py:303 ).first()2 ms1.4%
QuerySet.firstdjango/db/models/query.py:11452 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
latest_documentapps/projects/profiles.py:3052 ms1.4%
load_snapshotapps/projects/profiles.py:2952 ms1.4%
decompress<stdlib>/gzip.py:6912 ms1.4%
project_testapps/projects/urls.py:342 return render(request, "project_test.html", context)4 ms2.8%
renderdjango/shortcuts.py:254 ms2.8%
render_to_stringdjango/template/loader.py:624 ms2.8%
Template.renderdjango/template/backends/django.py:1074 ms2.8%
Template.renderdjango/template/base.py:1744 ms2.8%
instrumented_test_renderdjango/test/utils.py:1144 ms2.8%
NodeList.renderdjango/template/base.py:10914 ms2.8%
Node.render_annotateddjango/template/base.py:10524 ms2.8%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms2.8%
instrumented_test_renderdjango/test/utils.py:1144 ms2.8%
NodeList.renderdjango/template/base.py:10914 ms2.8%
Node.render_annotateddjango/template/base.py:10524 ms2.8%
ExtendsNode.renderdjango/template/loader_tags.py:1604 ms2.8%
instrumented_test_renderdjango/test/utils.py:1144 ms2.8%
NodeList.renderdjango/template/base.py:10914 ms2.8%
Node.render_annotateddjango/template/base.py:10524 ms2.8%
BlockNode.renderdjango/template/loader_tags.py:664 ms2.8%
NodeList.renderdjango/template/base.py:10914 ms2.8%
Node.render_annotateddjango/template/base.py:10524 ms2.8%
BlockNode.renderdjango/template/loader_tags.py:664 ms2.8%
NodeList.renderdjango/template/base.py:10914 ms2.8%
Node.render_annotateddjango/template/base.py:10524 ms2.8%
IfNode.renderdjango/template/defaulttags.py:3262 ms1.4%
TemplateLiteral.evaldjango/template/defaulttags.py:9182 ms1.4%
FilterExpression.resolvedjango/template/base.py:7882 ms1.4%
Variable.resolvedjango/template/base.py:9282 ms1.4%
Variable._resolve_lookupdjango/template/base.py:9762 ms1.4%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.4%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.4%
QuerySet.getdjango/db/models/query.py:6252 ms1.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15282 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:16132 ms1.4%
Query.build_lookupdjango/db/models/sql/query.py:14402 ms1.4%
IfNode.renderdjango/template/defaulttags.py:3332 ms1.4%
NodeList.renderdjango/template/base.py:10912 ms1.4%
Node.render_annotateddjango/template/base.py:10522 ms1.4%
ForNode.renderdjango/template/defaulttags.py:2492 ms1.4%
Node.render_annotateddjango/template/base.py:10522 ms1.4%
project_testapps/projects/urls.py:2892 ms1.4%
environment_stats_for_testapps/projects/analytics.py:748 for perf in TestPerf.objects.filter(test=test, date__gte=since).select_related("environment").order_by("date"):2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
project_testapps/projects/urls.py:3072 ms1.4%
build_call_treeapps/projects/profiles.py:6312 ms1.4%
source_lineapps/projects/profiles.py:601 return str(as_dict(document.get("sources")).get(str(frame_index)) or "").strip()2 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms1.4%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11102 ms1.4%
Model._do_updatedjango/db/models/base.py:12112 ms1.4%
QuerySet._updatedjango/db/models/query.py:13272 ms1.4%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.4%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.4%
SQLUpdateCompiler.as_sqldjango/db/models/sql/compiler.py:20782 ms1.4%
ClientHandler.__call__django/test/client.py:17318 ms14.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6218 ms14.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10418 ms14.2%
WhiteNoise.add_fileswhitenoise/base.py:10818 ms14.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12016 ms12.8%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13116 ms12.8%
WhiteNoise.get_static_filewhitenoise/base.py:20814 ms11.4%
StaticFile.__init__whitenoise/responders.py:734 ms2.8%
StaticFile.get_headerswhitenoise/responders.py:1764 ms2.8%
formatdate<stdlib>/email/utils.py:2662 ms1.4%
StaticFile.__init__whitenoise/responders.py:774 ms2.8%
StaticFile.get_alternativeswhitenoise/responders.py:2004 ms2.8%
__init____init__:-12 ms1.4%
StaticFile.__init__whitenoise/responders.py:754 ms2.8%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms1.4%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms1.4%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:502 ms1.4%
StaticFile.__init__whitenoise/responders.py:742 ms1.4%
parsedate<stdlib>/email/_parseaddr.py:1852 ms1.4%
StaticFile.__init__whitenoise/responders.py:762 ms1.4%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms1.4%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms1.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms1.4%
Client.requestdjango/test/client.py:10804 ms2.8%
Signal.connectdjango/dispatch/dispatcher.py:1102 ms1.4%
ClientHandler.__call__django/test/client.py:1732 ms1.4%
BaseHandler.load_middlewaredjango/core/handlers/base.py:622 ms1.4%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1042 ms1.4%
WhiteNoise.add_fileswhitenoise/base.py:1082 ms1.4%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1152 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2622 ms1.4%
scantreewhitenoise/base.py:2642 ms1.4%
<GC>~2 ms1.4%
ProjectPagesTest.test_test_pageapps/projects/tests.py:103644 ms35.5%
Client.getdjango/test/client.py:112444 ms35.5%
RequestFactory.getdjango/test/client.py:47544 ms35.5%
RequestFactory.genericdjango/test/client.py:67144 ms35.5%
Client.requestdjango/test/client.py:108244 ms35.5%
ClientHandler.__call__django/test/client.py:18644 ms35.5%
BaseHandler.get_responsedjango/core/handlers/base.py:14144 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13044 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30944 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12344 ms35.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5544 ms35.5%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
MiddlewareMixin.__call__django/utils/deprecation.py:30942 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3442 ms34.1%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5542 ms34.1%
BaseHandler._get_responsedjango/core/handlers/base.py:19842 ms34.1%
project_testapps/projects/urls.py:30718 ms14.2%
build_call_treeapps/projects/profiles.py:6287 ms5.7%
frame_atapps/projects/profiles.py:165 frames = as_list(document.get("frames"))4 ms2.8%
frame_atapps/projects/profiles.py:168 return [*frame, None, None, None, None][:4]4 ms2.8%
build_call_treeapps/projects/profiles.py:6315 ms4.3%
CallNode.childapps/projects/profiles.py:559 self.children[key] = CallNode(frame=frame, label=label)4 ms2.8%
build_call_treeapps/projects/profiles.py:6324 ms2.8%
source_lineapps/projects/profiles.py:601 return str(as_dict(document.get("sources")).get(str(frame_index)) or "").strip()2 ms1.4%
build_call_treeapps/projects/profiles.py:6272 ms1.4%
StackResolver.framesapps/projects/profiles.py:5892 ms1.4%
project_testapps/projects/urls.py:342 return render(request, "project_test.html", context)11 ms8.5%
renderdjango/shortcuts.py:2511 ms8.5%
render_to_stringdjango/template/loader.py:6211 ms8.5%
Template.renderdjango/template/backends/django.py:10711 ms8.5%
Template.renderdjango/template/base.py:17411 ms8.5%
instrumented_test_renderdjango/test/utils.py:11411 ms8.5%
NodeList.renderdjango/template/base.py:109111 ms8.5%
Node.render_annotateddjango/template/base.py:105211 ms8.5%
ExtendsNode.renderdjango/template/loader_tags.py:16011 ms8.5%
instrumented_test_renderdjango/test/utils.py:11411 ms8.5%
NodeList.renderdjango/template/base.py:109111 ms8.5%
Node.render_annotateddjango/template/base.py:105211 ms8.5%
ExtendsNode.renderdjango/template/loader_tags.py:16011 ms8.5%
instrumented_test_renderdjango/test/utils.py:11411 ms8.5%
NodeList.renderdjango/template/base.py:109111 ms8.5%
Node.render_annotateddjango/template/base.py:105211 ms8.5%
BlockNode.renderdjango/template/loader_tags.py:6611 ms8.5%
NodeList.renderdjango/template/base.py:109111 ms8.5%
Node.render_annotateddjango/template/base.py:105211 ms8.5%
BlockNode.renderdjango/template/loader_tags.py:6611 ms8.5%
NodeList.renderdjango/template/base.py:109111 ms8.5%
Node.render_annotateddjango/template/base.py:105211 ms8.5%
IfNode.renderdjango/template/defaulttags.py:3339 ms7.1%
NodeList.renderdjango/template/base.py:10919 ms7.1%
Node.render_annotateddjango/template/base.py:10529 ms7.1%
IfNode.renderdjango/template/defaulttags.py:3339 ms7.1%
NodeList.renderdjango/template/base.py:10919 ms7.1%
Node.render_annotateddjango/template/base.py:10529 ms7.1%
ForNode.renderdjango/template/defaulttags.py:2499 ms7.1%
Node.render_annotateddjango/template/base.py:10529 ms7.1%
VariableNode.renderdjango/template/base.py:11564 ms2.8%
render_value_in_contextdjango/template/base.py:11324 ms2.8%
IfNode.renderdjango/template/defaulttags.py:3334 ms2.8%
NodeList.renderdjango/template/base.py:10914 ms2.8%
FilterExpression.resolvedjango/template/base.py:7882 ms1.4%
project_testapps/projects/urls.py:286 context = shell(request, project, "tests") | filters(request, project, default_days=90)5 ms4.3%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {5 ms4.3%
org_shellapps/orgs/views.py:33 organizations = [] if user.is_anonymous else list(Organization.objects.filter(membership__user=user))4 ms2.8%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms1.4%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms1.4%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms1.4%
get_userdjango/contrib/auth/middleware.py:202 ms1.4%
get_userdjango/contrib/auth/__init__.py:3112 ms1.4%
_get_user_session_keydjango/contrib/auth/__init__.py:952 ms1.4%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:552 ms1.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms1.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms1.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
org_shellapps/orgs/views.py:40 "org_projects": list(organization.project_set.order_by("name")) if member else [],2 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.order_bydjango/db/models/query.py:17682 ms1.4%
QuerySet.querydjango/db/models/query.py:3062 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.4%
Query.setup_joinsdjango/db/models/sql/query.py:19272 ms1.4%
project_testapps/projects/urls.py:3115 ms4.3%
history_for_testapps/projects/analytics.py:806 for perf in TestPerf.objects.filter(test=test)4 ms2.8%
QuerySet.__iter__django/db/models/query.py:3904 ms2.8%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.8%
ModelIterable.__iter__django/db/models/query.py:954 ms2.8%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms2.8%
CursorWrapper.executedjango/db/backends/utils.py:794 ms2.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms2.8%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms2.8%
Cursor.executepsycopg/cursor.py:1134 ms2.8%
Connection.waitpsycopg/connection.py:4954 ms2.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms1.4%
BaseCursor._set_resultspsycopg/_cursor_base.py:5352 ms1.4%
history_for_testapps/projects/analytics.py:819 TestRun.objects.filter(test=test)2 ms1.4%
QuerySet.__iter__django/db/models/query.py:3902 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
project_testapps/projects/urls.py:285 test = get_object_or_404(Test, slug=test_slug, project=project)2 ms1.4%
get_object_or_404django/shortcuts.py:902 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16222 ms1.4%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.4%
project_testapps/projects/urls.py:3092 ms1.4%
render_call_treeapps/projects/profiles.py:6952 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.<genexpr>apps/projects/profiles.py:6952 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
format_html_join.<locals>.<genexpr>django/utils/html.py:1642 ms1.4%
render_call_tree.<locals>.render.<locals>.<genexpr>apps/projects/profiles.py:6792 ms1.4%
render_call_tree.<locals>.renderapps/projects/profiles.py:6792 ms1.4%
format_html_joindjango/utils/html.py:1582 ms1.4%
MiddlewareMixin.__call__django/utils/deprecation.py:3112 ms1.4%
SessionMiddleware.process_responsedjango/contrib/sessions/middleware.py:592 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1232 ms1.4%
SessionStore.create_model_instancedjango/contrib/sessions/backends/db.py:1022 ms1.4%
SessionBase.encodedjango/contrib/sessions/backends/base.py:1262 ms1.4%
dumpsdjango/core/signing.py:1512 ms1.4%
ProjectPagesTest.setUpapps/projects/tests.py:954 self.client.force_login(self.user)7 ms5.7%
ClientMixin.force_logindjango/test/client.py:8557 ms5.7%
ClientMixin._logindjango/test/client.py:8814 ms2.8%
logindjango/contrib/auth/__init__.py:1752 ms1.4%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms1.4%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms1.4%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms1.4%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet.getdjango/db/models/query.py:6352 ms1.4%
QuerySet.__len__django/db/models/query.py:3722 ms1.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.4%
ModelIterable.__iter__django/db/models/query.py:952 ms1.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
logindjango/contrib/auth/__init__.py:1972 ms1.4%
Signal.senddjango/dispatch/dispatcher.py:2092 ms1.4%
update_last_logindjango/contrib/auth/models.py:242 ms1.4%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms1.4%
Model.savedjango/db/models/base.py:8282 ms1.4%
Model._prepare_related_fields_for_savedjango/db/models/base.py:12402 ms1.4%
ClientMixin._logindjango/test/client.py:8762 ms1.4%
ClientMixin.sessiondjango/test/client.py:8122 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms1.4%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11672 ms1.4%
Model._do_insertdjango/db/models/base.py:12182 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.4%
QuerySet._insertdjango/db/models/query.py:19182 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.4%
Cursor.executepsycopg/cursor.py:1132 ms1.4%
Connection.waitpsycopg/connection.py:4952 ms1.4%
ClientMixin._logindjango/test/client.py:8832 ms1.4%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms1.4%
Model.savedjango/db/models/base.py:8742 ms1.4%
Model.save_basedjango/db/models/base.py:9662 ms1.4%
Model._save_tabledjango/db/models/base.py:11102 ms1.4%
Model._do_updatedjango/db/models/base.py:11882 ms1.4%
QuerySet.filterdjango/db/models/query.py:15422 ms1.4%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.4%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.4%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.4%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.4%
Query.build_filterdjango/db/models/sql/query.py:16112 ms1.4%
Query._get_coldjango/db/models/sql/query.py:4512 ms1.4%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()5 ms4.3%
TestCase._fixture_teardowndjango/test/testcases.py:14955 ms4.3%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4835 ms4.3%
CursorWrapper.executedjango/db/backends/utils.py:795 ms4.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:925 ms4.3%
CursorWrapper._executedjango/db/backends/utils.py:1035 ms4.3%
Cursor.executepsycopg/cursor.py:1135 ms4.3%
Connection.waitpsycopg/connection.py:4955 ms4.3%
ProjectPagesTest.test_test_pageapps/projects/tests.py:10322 ms1.4%
SimpleTestCase.assertContainsdjango/test/testcases.py:6032 ms1.4%
SimpleTestCase._assert_containsdjango/test/testcases.py:5822 ms1.4%
Estimated from 70 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:1028
response = self.client.get(self.project.url("project_test", self.real_test.slug))
ProjectPagesTest.test_test_page
· Libraries
|
23 ms |
|
apps/projects/urls.py:342
return render(request, "project_test.html", context)
project_test
· Templates
|
14 ms |
|
apps/orgs/models.py:65
return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()
Organization.is_owner
· Database
|
9 ms |
|
apps/projects/tests.py:954
self.client.force_login(self.user)
ProjectPagesTest.setUp
· Database
|
7 ms |
|
apps/projects/analytics.py:806
for perf in TestPerf.objects.filter(test=test)
history_for_test
· Database
|
7 ms |
|
apps/projects/profiles.py:666
head = format_html(
render_call_tree.<locals>.render
· Libraries
|
5 ms |
|
apps/projects/profiles.py:559
self.children[key] = CallNode(frame=frame, label=label)
CallNode.child
· App code
|
4 ms |
|
apps/projects/profiles.py:165
frames = as_list(document.get("frames"))
frame_at
· App code
|
4 ms |
|
apps/projects/profiles.py:168
return [*frame, None, None, None, None][:4]
frame_at
· App code
|
4 ms |
|
apps/projects/analytics.py:846
return perfs.select_related("profile", "environment").order_by("-date").first()
latest_perf
· Database
|
4 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
66 queries · 28 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
6×
SELECT "projects_testperf"."id", "projects_testperf"."project_id", "projects_testperf"."test_id", "projects_testperf"."profile_id", "projects_testperf"."part", "projects_testperf"."environment_id", "projects_testperf"."outcome", "projects_testperf"."duration", "projects_testperf"."setup", "projects…
4×
SELECT "projects_project"."id", "projects_project"."organization_id", "projects_project"."name", "projects_project"."slug", "projects_project"."public", "projects_project"."description", "projects_project"."date_created", "projects_project"."date_updated", "projects_project"."created_by_id" FROM "p…
3×
SELECT "django_session"."session_key", "django_session"."session_data", "django_session"."expire_date" FROM "django_session" WHERE ("django_session"."expire_date" > %s AND "django_session"."session_key" = %s) LIMIT ?
3×
UPDATE "django_session" SET "session_data" = %s, "expire_date" = %s WHERE "django_session"."session_key" = %s
Biggest pieces of work
|
call test body
apps/projects/tests.py:1028
|
111 ms |
|
call setUp
apps/projects/tests.py:954
|
7 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
5 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 124 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 73 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 115 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 105 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 137 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 84 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 131 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 125 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 120 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 145 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 76 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 130 ms | Profile |