Tests / ft/tests.py
TestProjectsHome::test_user_logged_in_without_projects
First seen 7 hours ago in 78a4357
CI
github-actions:test
5 runs
Average
49 ms
median 54 ms
max 62 ms
max 62 ms
Phases
Setup 0.70 ms
Call 47 ms
Teardown 1 ms
Categories
Database 26 ms
Other (Libraries, Unsampled, pytest) 23 ms
30 database queries per run
Needs 731 KB of memory (max 788 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 18 minutes ago ·
open run
setup0.88 ms1.6%
call52 ms96.2%
TestProjectsHome.test_user_logged_in_without_projectsft/tests.py:31 response = self.client.get(reverse("projects"))35 ms65.2%
Client.getdjango/test/client.py:112435 ms65.2%
RequestFactory.getdjango/test/client.py:47535 ms65.2%
RequestFactory.genericdjango/test/client.py:67135 ms65.2%
Client.requestdjango/test/client.py:108235 ms65.2%
ClientHandler.__call__django/test/client.py:17327 ms49.7%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6227 ms49.7%
__init____init__:-127 ms49.7%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10427 ms49.7%
WhiteNoise.add_fileswhitenoise/base.py:10827 ms49.7%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12020 ms37.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13120 ms37.2%
WhiteNoise.get_static_filewhitenoise/base.py:20812 ms21.7%
StaticFile.__init__whitenoise/responders.py:777 ms12.4%
StaticFile.get_alternativeswhitenoise/responders.py:1982 ms3.1%
StaticFile.get_alternatives.<locals>.<lambda>whitenoise/responders.py:1982 ms3.1%
<GC>~2 ms3.1%
StaticFile.get_alternativeswhitenoise/responders.py:2032 ms3.1%
Headers.__setitem__<stdlib>/wsgiref/headers.py:622 ms3.1%
Headers.__init__<stdlib>/wsgiref/headers.py:432 ms3.1%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms3.1%
StaticFile.get_alternativeswhitenoise/responders.py:2042 ms3.1%
StaticFile.__init__whitenoise/responders.py:733 ms6.2%
StaticFile.get_headerswhitenoise/responders.py:1782 ms3.1%
parsedate<stdlib>/email/_parseaddr.py:1852 ms3.1%
StaticFile.get_headerswhitenoise/responders.py:1762 ms3.1%
formatdate<stdlib>/email/utils.py:2662 ms3.1%
StaticFile.__init__whitenoise/responders.py:762 ms3.1%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1882 ms3.1%
WhiteNoise.get_static_filewhitenoise/base.py:2038 ms15.5%
WhiteNoise.add_cache_headerswhitenoise/base.py:2248 ms15.5%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1768 ms15.5%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1978 ms15.5%
URLMixin.urldebug_toolbar/panels/staticfiles.py:208 ms15.5%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2057 ms12.4%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1867 ms12.4%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2072 ms3.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1157 ms12.4%
scantreewhitenoise/base.py:2625 ms9.3%
scantreewhitenoise/base.py:2625 ms9.3%
scantreewhitenoise/base.py:2623 ms6.2%
scantreewhitenoise/base.py:2642 ms3.1%
scantreewhitenoise/base.py:2602 ms3.1%
scantreewhitenoise/base.py:2642 ms3.1%
ClientHandler.__call__django/test/client.py:1868 ms15.5%
BaseHandler.get_responsedjango/core/handlers/base.py:1418 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1308 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1238 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:348 ms15.5%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms15.5%
BaseHandler._get_responsedjango/core/handlers/base.py:1988 ms15.5%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:597 ms12.4%
homeapps/orgs/views.py:723 ms6.2%
current_organizationapps/orgs/views.py:543 ms6.2%
ensure_organizationapps/orgs/models.py:126 membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()2 ms3.1%
QuerySet.firstdjango/db/models/query.py:11452 ms3.1%
QuerySet.__iter__django/db/models/query.py:3902 ms3.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.1%
ModelIterable.__iter__django/db/models/query.py:952 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms3.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms3.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms3.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms3.1%
ensure_organizationapps/orgs/models.py:130 organization = Organization.objects.create(2 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.1%
QuerySet.createdjango/db/models/query.py:6692 ms3.1%
Model.savedjango/db/models/base.py:8742 ms3.1%
Model.save_basedjango/db/models/base.py:9662 ms3.1%
Model._save_tabledjango/db/models/base.py:11672 ms3.1%
Model._do_insertdjango/db/models/base.py:12182 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.1%
QuerySet._insertdjango/db/models/query.py:19182 ms3.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
homeapps/orgs/views.py:74 if not projects.exists():2 ms3.1%
QuerySet.existsdjango/db/models/query.py:13372 ms3.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
homeapps/orgs/views.py:75 return redirect("project_create", org_slug=organization.slug)2 ms3.1%
redirectdjango/shortcuts.py:502 ms3.1%
HttpResponseRedirectBase.__init__django/http/response.py:6362 ms3.1%
HttpResponse.__init__django/http/response.py:3802 ms3.1%
user_passes_test.<locals>.decorator.<locals>._view_wrapperdjango/contrib/auth/decorators.py:562 ms3.1%
login_required.<locals>.<lambda>django/contrib/auth/decorators.py:792 ms3.1%
new_method_proxy.<locals>.innerdjango/utils/functional.py:2512 ms3.1%
SimpleLazyObject._setupdjango/utils/functional.py:4042 ms3.1%
AuthenticationMiddleware.process_request.<locals>.<lambda>django/contrib/auth/middleware.py:402 ms3.1%
get_userdjango/contrib/auth/middleware.py:202 ms3.1%
get_userdjango/contrib/auth/__init__.py:3182 ms3.1%
ModelBackend.get_userdjango/contrib/auth/backends.py:2322 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.1%
QuerySet.getdjango/db/models/query.py:6252 ms3.1%
QuerySet.filterdjango/db/models/query.py:15422 ms3.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms3.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms3.1%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.1%
Query._add_qdjango/db/models/sql/query.py:17032 ms3.1%
Query.build_filterdjango/db/models/sql/query.py:16132 ms3.1%
Query.build_lookupdjango/db/models/sql/query.py:14302 ms3.1%
TestProjectsHome.test_user_logged_in_without_projectsft/tests.py:30 self.client.force_login(user)12 ms21.7%
ClientMixin.force_logindjango/test/client.py:85512 ms21.7%
ClientMixin._logindjango/test/client.py:8818 ms15.5%
logindjango/contrib/auth/__init__.py:1875 ms9.3%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4343 ms6.2%
SessionStore.createdjango/contrib/sessions/backends/db.py:702 ms3.1%
SessionBase._get_new_session_keydjango/contrib/sessions/backends/base.py:1982 ms3.1%
SessionStore.existsdjango/contrib/sessions/backends/db.py:632 ms3.1%
QuerySet.existsdjango/db/models/query.py:13372 ms3.1%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms3.1%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1262 ms3.1%
Atomic.__exit__django/db/transaction.py:2472 ms3.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms3.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3742 ms3.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.1%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3202 ms3.1%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2982 ms3.1%
SessionBase.cycle_keydjango/contrib/sessions/backends/base.py:4372 ms3.1%
SessionStore.deletedjango/contrib/sessions/backends/db.py:1752 ms3.1%
Model.deletedjango/db/models/base.py:12982 ms3.1%
Collector.deletedjango/db/models/deletion.py:4522 ms3.1%
DeleteQuery.delete_batchdjango/db/models/sql/subqueries.py:392 ms3.1%
Query.add_filterdjango/db/models/sql/query.py:16512 ms3.1%
Query.add_qdjango/db/models/sql/query.py:16712 ms3.1%
Query._add_qdjango/db/models/sql/query.py:17032 ms3.1%
Query.build_filterdjango/db/models/sql/query.py:15732 ms3.1%
Query.get_initial_aliasdjango/db/models/sql/query.py:11162 ms3.1%
logindjango/contrib/auth/__init__.py:1752 ms3.1%
SessionBase.__contains__django/contrib/sessions/backends/base.py:522 ms3.1%
SessionBase._get_sessiondjango/contrib/sessions/backends/base.py:2512 ms3.1%
SessionStore.loaddjango/contrib/sessions/backends/db.py:552 ms3.1%
SessionStore._get_session_from_dbdjango/contrib/sessions/backends/db.py:342 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.1%
QuerySet.getdjango/db/models/query.py:6352 ms3.1%
QuerySet.__len__django/db/models/query.py:3722 ms3.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.1%
ModelIterable.__iter__django/db/models/query.py:952 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
logindjango/contrib/auth/__init__.py:1972 ms3.1%
Signal.senddjango/dispatch/dispatcher.py:2092 ms3.1%
update_last_logindjango/contrib/auth/models.py:242 ms3.1%
AbstractBaseUser.savedjango/contrib/auth/base_user.py:622 ms3.1%
Model.savedjango/db/models/base.py:8742 ms3.1%
Model.save_basedjango/db/models/base.py:9662 ms3.1%
Model._save_tabledjango/db/models/base.py:11102 ms3.1%
Model._do_updatedjango/db/models/base.py:12112 ms3.1%
QuerySet._updatedjango/db/models/query.py:13272 ms3.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms3.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
ClientMixin._logindjango/test/client.py:8762 ms3.1%
ClientMixin.sessiondjango/test/client.py:8122 ms3.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1212 ms3.1%
SessionStore.createdjango/contrib/sessions/backends/db.py:742 ms3.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.1%
Model.savedjango/db/models/base.py:8742 ms3.1%
Model.save_basedjango/db/models/base.py:9662 ms3.1%
Model._save_tabledjango/db/models/base.py:11672 ms3.1%
Model._do_insertdjango/db/models/base.py:12182 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.1%
QuerySet._insertdjango/db/models/query.py:19182 ms3.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
ClientMixin._logindjango/test/client.py:8832 ms3.1%
SessionStore.savedjango/contrib/sessions/backends/db.py:1272 ms3.1%
Model.savedjango/db/models/base.py:8742 ms3.1%
Model.save_basedjango/db/models/base.py:9662 ms3.1%
Model._save_tabledjango/db/models/base.py:11102 ms3.1%
Model._do_updatedjango/db/models/base.py:12112 ms3.1%
QuerySet._updatedjango/db/models/query.py:13272 ms3.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms3.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()3 ms6.2%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms3.1%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms3.1%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms3.1%
Atomic.__exit__django/db/transaction.py:2862 ms3.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms3.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms3.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
TestProjectsHome.test_user_logged_in_without_projectsft/tests.py:33 organization = Organization.objects.get(membership__user=user)2 ms3.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms3.1%
QuerySet.getdjango/db/models/query.py:6352 ms3.1%
QuerySet.__len__django/db/models/query.py:3722 ms3.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms3.1%
ModelIterable.__iter__django/db/models/query.py:952 ms3.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms3.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms3.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms3.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms3.1%
Cursor.executepsycopg/cursor.py:1132 ms3.1%
Connection.waitpsycopg/connection.py:4952 ms3.1%
teardown1 ms2.2%
ABCMeta.__instancecheck__<frozen abc>:1191 ms2.2%
Estimated from 33 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
ft/tests.py:31
response = self.client.get(reverse("projects"))
TestProjectsHome.test_user_logged_in_without_projects
· Libraries
|
28 ms |
|
ft/tests.py:30
self.client.force_login(user)
TestProjectsHome.test_user_logged_in_without_projects
· Database
|
12 ms |
|
apps/orgs/models.py:126
membership = Membership.objects.filter(user=user).select_related("organization").order_by("id").first()
ensure_organization
· Database
|
2 ms |
|
apps/orgs/models.py:130
organization = Organization.objects.create(
ensure_organization
· Database
|
2 ms |
|
apps/orgs/views.py:74
if not projects.exists():
home
· Database
|
2 ms |
|
apps/orgs/views.py:75
return redirect("project_create", org_slug=organization.slug)
home
· Libraries
|
2 ms |
|
ft/tests.py:33
organization = Organization.objects.get(membership__user=user)
TestProjectsHome.test_user_logged_in_without_projects
· Database
|
2 ms |
Fixtures
Exact setup time| _template_string_if_invalid_marker function | 0.06 ms |
| _dj_autoclear_mailbox function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.05 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.03 ms |
Database
30 queries · 10 msNo repeated queries.
Biggest pieces of work
|
call test body
ft/tests.py:31
|
49 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
3 ms |
|
teardown __instancecheck__
<frozen abc>:119
|
1 ms |
| setup pytest internals | 0.88 ms |
Reliability
5 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 5 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 18 minutes ago | CI github-actions:test | passed | 54 ms | Profile |
| 43 minutes ago | CI github-actions:test | passed | 54 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 62 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 26 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 50 ms | Profile |