Tests / apps/projects/tests.py
ProjectTestsPage::test_project_with_tests
First seen 2 years, 10 months ago in d87c7a8
CI
github-actions:test
12 runs
Average
57 ms
median 60 ms
max 91 ms
max 91 ms
Phases
Setup 0.69 ms
Call 55 ms
Teardown 0.77 ms
Categories
Database 31 ms
App code 0.19 ms
Test code 0.14 ms
Other (Libraries, Templates, Unsampled, pytest) 25 ms
35 database queries per run
Needs 272 KB of memory (max 584 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup0.74 ms1.1%
call62 ms94.9%
ProjectTestsPage.test_project_with_testsapps/projects/tests.py:360 response = self.client.get(self.url)52 ms79.9%
Client.getdjango/test/client.py:112452 ms79.9%
RequestFactory.getdjango/test/client.py:47552 ms79.9%
RequestFactory.genericdjango/test/client.py:67152 ms79.9%
Client.requestdjango/test/client.py:108252 ms79.9%
ClientHandler.__call__django/test/client.py:18633 ms50.0%
BaseHandler.get_responsedjango/core/handlers/base.py:14133 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13033 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12333 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
MiddlewareMixin.__call__django/utils/deprecation.py:30933 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3433 ms50.0%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5533 ms50.0%
BaseHandler._get_responsedjango/core/handlers/base.py:19833 ms50.0%
project_testsapps/projects/urls.py:17716 ms25.0%
find_projectapps/projects/urls.py:5210 ms15.0%
can_viewapps/projects/urls.py:3310 ms15.0%
can_manage_projectapps/projects/urls.py:38 if not user.is_authenticated:7 ms10.0%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2517 ms10.0%
SimpleLazyObject._setupdjango/utils/functional.py:4047 ms10.0%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:407 ms10.0%
get_userdjango/contrib/auth/middleware.py:207 ms10.0%
get_userdjango/contrib/auth/__init__.py:3113 ms5.0%
_get_user_session_keydjango/contrib/auth/__init__.py:953 ms5.0%
SessionBase.__getitem__django/contrib/sessions/backends/base.py:553 ms5.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2513 ms5.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:553 ms5.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:343 ms5.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms5.0%
QuerySet.getdjango/db/models/query.py:6353 ms5.0%
QuerySet.__len__django/db/models/query.py:3723 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms5.0%
ModelIterable.__iter__django/db/models/query.py:953 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
get_userdjango/contrib/auth/__init__.py:3183 ms5.0%
ModelBackend.get_userdjango/contrib/auth/backends.py:2323 ms5.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms5.0%
QuerySet.getdjango/db/models/query.py:6353 ms5.0%
QuerySet.__len__django/db/models/query.py:3723 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms5.0%
ModelIterable.__iter__django/db/models/query.py:953 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()3 ms5.0%
QuerySet.existsdjango/db/models/query.py:13373 ms5.0%
Query.has_resultsdjango/db/models/sql/query.py:6813 ms5.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15923 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
find_projectapps/projects/urls.py:49 project = get_object_or_404(7 ms10.0%
get_object_or_404django/shortcuts.py:907 ms10.0%
QuerySet.getdjango/db/models/query.py:6253 ms5.0%
QuerySet.filterdjango/db/models/query.py:15423 ms5.0%
QuerySet._filter_or_excludedjango/db/models/query.py:15603 ms5.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15703 ms5.0%
Query.add_qdjango/db/models/sql/query.py:16713 ms5.0%
Query._add_qdjango/db/models/sql/query.py:17033 ms5.0%
Query.build_filterdjango/db/models/sql/query.py:15773 ms5.0%
Query.setup_joinsdjango/db/models/sql/query.py:19743 ms5.0%
Query.is_nullabledjango/db/models/sql/query.py:27213 ms5.0%
QuerySet.getdjango/db/models/query.py:6353 ms5.0%
QuerySet.__len__django/db/models/query.py:3723 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms5.0%
ModelIterable.__iter__django/db/models/query.py:953 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
project_testsapps/projects/urls.py:18010 ms15.0%
shellapps/projects/urls.py:71 return org_shell(request, project.organization if project else None, section) | {3 ms5.0%
org_shellapps/orgs/views.py:423 ms5.0%
Organization.is_ownerapps/orgs/models.py:65 return user.is_authenticated and self.membership_set.filter(user=user, role=Membership.Role.OWNER).exists()3 ms5.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms5.0%
QuerySet.filterdjango/db/models/query.py:15413 ms5.0%
QuerySet._not_support_combined_queriesdjango/db/models/query.py:20743 ms5.0%
QuerySet.querydjango/db/models/query.py:3063 ms5.0%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15703 ms5.0%
Query.add_qdjango/db/models/sql/query.py:16713 ms5.0%
Query._add_qdjango/db/models/sql/query.py:17033 ms5.0%
Query.build_filterdjango/db/models/sql/query.py:15993 ms5.0%
Query.trim_joinsdjango/db/models/sql/query.py:20233 ms5.0%
shellapps/projects/urls.py:733 ms5.0%
can_manageapps/projects/urls.py:443 ms5.0%
can_manage_projectapps/projects/urls.py:40 return user.is_superuser or project.organization.membership_set.filter(user=user).exists()3 ms5.0%
QuerySet.existsdjango/db/models/query.py:13373 ms5.0%
Query.has_resultsdjango/db/models/sql/query.py:6813 ms5.0%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15923 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16113 ms5.0%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7673 ms5.0%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:863 ms5.0%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:753 ms5.0%
filtersapps/projects/urls.py:80 environments = list(Environment.objects.filter(project=project).order_by("kind", "name"))3 ms5.0%
QuerySet.__iter__django/db/models/query.py:3903 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms5.0%
ModelIterable.__iter__django/db/models/query.py:953 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
project_testsapps/projects/urls.py:248 tests.annotate(3 ms5.0%
QuerySet.annotatedjango/db/models/query.py:16993 ms5.0%
QuerySet._annotatedjango/db/models/query.py:17513 ms5.0%
Query.add_annotationdjango/db/models/sql/query.py:12423 ms5.0%
Subquery.resolve_expressiondjango/db/models/expressions.py:18083 ms5.0%
project_testsapps/projects/urls.py:259 return render(request, "project_tests.html", context)3 ms5.0%
renderdjango/shortcuts.py:253 ms5.0%
render_to_stringdjango/template/loader.py:623 ms5.0%
Template.renderdjango/template/backends/django.py:1073 ms5.0%
Template.renderdjango/template/base.py:1743 ms5.0%
instrumented_test_renderdjango/test/utils.py:1143 ms5.0%
NodeList.renderdjango/template/base.py:10913 ms5.0%
Node.render_annotateddjango/template/base.py:10523 ms5.0%
ExtendsNode.renderdjango/template/loader_tags.py:1603 ms5.0%
instrumented_test_renderdjango/test/utils.py:1143 ms5.0%
NodeList.renderdjango/template/base.py:10913 ms5.0%
Node.render_annotateddjango/template/base.py:10523 ms5.0%
ExtendsNode.renderdjango/template/loader_tags.py:1603 ms5.0%
instrumented_test_renderdjango/test/utils.py:1143 ms5.0%
NodeList.renderdjango/template/base.py:10913 ms5.0%
Node.render_annotateddjango/template/base.py:10523 ms5.0%
BlockNode.renderdjango/template/loader_tags.py:663 ms5.0%
NodeList.renderdjango/template/base.py:10913 ms5.0%
Node.render_annotateddjango/template/base.py:10523 ms5.0%
BlockNode.renderdjango/template/loader_tags.py:663 ms5.0%
NodeList.renderdjango/template/base.py:10913 ms5.0%
Node.render_annotateddjango/template/base.py:10523 ms5.0%
IfNode.renderdjango/template/defaulttags.py:3333 ms5.0%
NodeList.renderdjango/template/base.py:10913 ms5.0%
Node.render_annotateddjango/template/base.py:10523 ms5.0%
IfNode.renderdjango/template/defaulttags.py:3323 ms5.0%
Page.__len__django/core/paginator.py:3193 ms5.0%
QuerySet.__len__django/db/models/query.py:3723 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms5.0%
ValuesIterable.__iter__django/db/models/query.py:2223 ms5.0%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15733 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
ClientHandler.__call__django/test/client.py:17320 ms30.0%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6220 ms30.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10416 ms25.0%
WhiteNoise.add_fileswhitenoise/base.py:10816 ms25.0%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12016 ms25.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13116 ms25.0%
WhiteNoise.get_static_filewhitenoise/base.py:20816 ms25.0%
StaticFile.__init__whitenoise/responders.py:767 ms10.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1893 ms5.0%
Headers.__getitem__<stdlib>/wsgiref/headers.py:833 ms5.0%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1883 ms5.0%
Headers.__contains__<stdlib>/wsgiref/headers.py:873 ms5.0%
Headers.get<stdlib>/wsgiref/headers.py:1063 ms5.0%
StaticFile.__init__whitenoise/responders.py:727 ms10.0%
StaticFile.get_file_statswhitenoise/responders.py:1633 ms5.0%
StaticFile.get_file_statswhitenoise/responders.py:1573 ms5.0%
StaticFile.__init__whitenoise/responders.py:773 ms5.0%
StaticFile.get_alternativeswhitenoise/responders.py:2003 ms5.0%
__init____init__:-13 ms5.0%
Headers.__init__<stdlib>/wsgiref/headers.py:443 ms5.0%
Headers._convert_string_type<stdlib>/wsgiref/headers.py:503 ms5.0%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:1113 ms5.0%
WhiteNoise.add_fileswhitenoise/base.py:1073 ms5.0%
isdir<frozen genericpath>:523 ms5.0%
ProjectTestsPage.setUpapps/projects/tests.py:338 self.client.force_login(self.user)7 ms10.0%
ClientMixin.force_logindjango/test/client.py:8557 ms10.0%
ClientMixin._logindjango/test/client.py:8763 ms5.0%
ClientMixin.sessiondjango/test/client.py:8123 ms5.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1213 ms5.0%
SessionStore.createdjango/contrib/sessions/backends/db.py:743 ms5.0%
SessionStore.savedjango/contrib/sessions/backends/db.py:1273 ms5.0%
Model.savedjango/db/models/base.py:8743 ms5.0%
Model.save_basedjango/db/models/base.py:9663 ms5.0%
Model._save_tabledjango/db/models/base.py:11673 ms5.0%
Model._do_insertdjango/db/models/base.py:12183 ms5.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms5.0%
QuerySet._insertdjango/db/models/query.py:19183 ms5.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19253 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
ClientMixin._logindjango/test/client.py:8813 ms5.0%
logindjango/contrib/auth/__init__.py:1753 ms5.0%
SessionBase.__contains__django/contrib/sessions/backends/base.py:523 ms5.0%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2513 ms5.0%
SessionStore.loaddjango/contrib/sessions/backends/db.py:553 ms5.0%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:343 ms5.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:873 ms5.0%
QuerySet.getdjango/db/models/query.py:6353 ms5.0%
QuerySet.__len__django/db/models/query.py:3723 ms5.0%
QuerySet._fetch_alldjango/db/models/query.py:20003 ms5.0%
ModelIterable.__iter__django/db/models/query.py:953 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16243 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1053 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms5.0%
TestCase._fixture_teardowndjango/test/testcases.py:14973 ms5.0%
TestCase._rollback_atomicsdjango/test/testcases.py:14053 ms5.0%
Atomic.__exit__django/db/transaction.py:2833 ms5.0%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:263 ms5.0%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4133 ms5.0%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3713 ms5.0%
CursorWrapper.executedjango/db/backends/utils.py:793 ms5.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:923 ms5.0%
CursorWrapper._executedjango/db/backends/utils.py:1033 ms5.0%
Cursor.executepsycopg/cursor.py:1133 ms5.0%
Connection.waitpsycopg/connection.py:4953 ms5.0%
teardown3 ms3.9%
TestCase.tearDownClassdjango/test/testcases.py:1455 conn.close()3 ms3.9%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:263 ms3.9%
BaseDatabaseWrapper.closedjango/db/backends/base/base.py:3553 ms3.9%
DatabaseWrapper._closedjango/db/backends/postgresql/base.py:3963 ms3.9%
Connection.closepsycopg/connection.py:2013 ms3.9%
Estimated from 22 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/tests.py:360
response = self.client.get(self.url)
ProjectTestsPage.test_project_with_tests
· Libraries
|
20 ms |
|
apps/projects/tests.py:338
self.client.force_login(self.user)
ProjectTestsPage.setUp
· Database
|
7 ms |
|
apps/projects/urls.py:49
project = get_object_or_404(
find_project
· Database
|
7 ms |
|
apps/projects/urls.py:38
if not user.is_authenticated:
can_manage_project
· Database
|
7 ms |
|
apps/projects/urls.py:40
return user.is_superuser or project.organization.membership_set.filter(user=user).exists()
can_manage_project
· Database
|
7 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
|
3 ms |
|
apps/projects/urls.py:80
environments = list(Environment.objects.filter(project=project).order_by("kind", "name"))
filters
· Database
|
3 ms |
|
apps/projects/urls.py:248
tests.annotate(
project_tests
· Database
|
3 ms |
|
apps/projects/urls.py:259
return render(request, "project_tests.html", context)
project_tests
· Database
|
3 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.05 ms |
| _django_db_marker function | 0.04 ms |
| _django_set_urlconf function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
35 queries · 11 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/projects/tests.py:360
|
52 ms |
|
call setUp
apps/projects/tests.py:338
|
7 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 ms |
|
teardown tearDownClass
django/test/testcases.py:1455
|
3 ms |
| setup pytest internals | 0.74 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 | 66 ms | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 34 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 55 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 45 ms | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 91 ms | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 41 ms | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 63 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 64 ms | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 61 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 67 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 34 ms | Profile |
| 3 weeks ago | CI github-actions:test | passed | 59 ms | Profile |