CI
github-actions:test
5 runs
Average
160 ms
median 147 ms
max 281 ms
max 281 ms
Phases
Setup 0.81 ms
Call 159 ms
Teardown 0.19 ms
Categories
Database 100 ms
App code 5 ms
Test code 0.70 ms
Other (Libraries, Serialization, Unsampled, pytest) 55 ms
133 database queries per run
Needs 446 KB of memory (max 780 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 14 minutes ago ·
open run
call151 ms99.2%
ProfileUploadTest.test_upload_in_partsapps/api/tests.py:727 response = self.upload(third)71 ms46.3%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(42 ms27.8%
Client.postdjango/test/client.py:115342 ms27.8%
RequestFactory.postdjango/test/client.py:49942 ms27.8%
RequestFactory.genericdjango/test/client.py:67142 ms27.8%
Client.requestdjango/test/client.py:108242 ms27.8%
ClientHandler.__call__django/test/client.py:17326 ms17.2%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6226 ms17.2%
__init____init__:-126 ms17.2%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10426 ms17.2%
WhiteNoise.add_fileswhitenoise/base.py:10826 ms17.2%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12020 ms13.2%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13120 ms13.2%
WhiteNoise.get_static_filewhitenoise/base.py:20810 ms6.6%
StaticFile.__init__whitenoise/responders.py:776 ms4.0%
StaticFile.get_alternativeswhitenoise/responders.py:2004 ms2.6%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms1.3%
StaticFile.__init__whitenoise/responders.py:752 ms1.3%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms1.3%
Headers.get<stdlib>/wsgiref/headers.py:1072 ms1.3%
WhiteNoise.get_static_filewhitenoise/base.py:2038 ms5.3%
WhiteNoise.add_cache_headerswhitenoise/base.py:2246 ms4.0%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1766 ms4.0%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1976 ms4.0%
URLMixin.urldebug_toolbar/panels/staticfiles.py:204 ms2.6%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms1.3%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms1.3%
FileSystemStorage.urldjango/core/files/storage/filesystem.py:2122 ms1.3%
LazyObject.__getattribute__django/utils/functional.py:2802 ms1.3%
WhiteNoise.add_cache_headerswhitenoise/base.py:2272 ms1.3%
WhiteNoise.get_static_filewhitenoise/base.py:2022 ms1.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1156 ms4.0%
scantreewhitenoise/base.py:2626 ms4.0%
scantreewhitenoise/base.py:2626 ms4.0%
scantreewhitenoise/base.py:2602 ms1.3%
scantreewhitenoise/base.py:2622 ms1.3%
scantreewhitenoise/base.py:2622 ms1.3%
scantreewhitenoise/base.py:2642 ms1.3%
<GC>~2 ms1.3%
scantreewhitenoise/base.py:2642 ms1.3%
ClientHandler.__call__django/test/client.py:18616 ms10.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14116 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13016 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12316 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30916 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3416 ms10.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5516 ms10.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19816 ms10.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6516 ms10.6%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3716 ms10.6%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6416 ms10.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:758 ms5.3%
profile_uploadapps/api/urls.py:1502 ms1.3%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.createdjango/db/models/query.py:6692 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms1.3%
QuerySet.firstdjango/db/models/query.py:11452 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
profile_uploadapps/api/urls.py:154 part = ProfilePart.objects.create(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.createdjango/db/models/query.py:6692 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11672 ms1.3%
Model._do_insertdjango/db/models/base.py:12182 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
profile_uploadapps/api/urls.py:1632 ms1.3%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms1.3%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))6 ms4.0%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))2 ms1.3%
get_object_or_404django/shortcuts.py:902 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
ProfileUploadTest.uploadapps/api/tests.py:49528 ms18.5%
_SharedTaskProxy.__call__potatoq/app.py:76328 ms18.5%
Task.__call__potatoq/task.py:18928 ms18.5%
process_profileapps/api/tasks.py:23918 ms11.9%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)8 ms5.3%
claim_partapps/projects/profiles.py:3784 ms2.6%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(4 ms2.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms2.6%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms1.3%
QuerySet.createdjango/db/models/query.py:6692 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11672 ms1.3%
Model._do_insertdjango/db/models/base.py:12182 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:376 project = profile.project2 ms1.3%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:4462 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11102 ms1.3%
Model._do_updatedjango/db/models/base.py:12112 ms1.3%
QuerySet._updatedjango/db/models/query.py:13272 ms1.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms1.3%
QuerySet.firstdjango/db/models/query.py:11452 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms1.3%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms1.3%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms1.3%
process_profile_partapps/projects/profiles.py:338 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()2 ms1.3%
QuerySet.existsdjango/db/models/query.py:13372 ms1.3%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.3%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
process_profile_partapps/projects/profiles.py:3442 ms1.3%
upsert_testsapps/projects/profiles.py:4512 ms1.3%
TestManager.upsertapps/projects/models.py:2292 ms1.3%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)2 ms1.3%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
process_profile_partapps/projects/profiles.py:3462 ms1.3%
write_snapshotsapps/projects/profiles.py:3122 ms1.3%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:3102 ms1.3%
write_snapshots.<locals>.rowapps/projects/profiles.py:306 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),2 ms1.3%
dumps<stdlib>/json/__init__.py:2412 ms1.3%
JSONEncoder.encode<stdlib>/json/encoder.py:2022 ms1.3%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2632 ms1.3%
process_profileapps/api/tasks.py:2536 ms4.0%
_SharedTaskProxy.__call__potatoq/app.py:7636 ms4.0%
Task.__call__potatoq/task.py:1896 ms4.0%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):6 ms4.0%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms1.3%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.3%
Col.as_sqldjango/db/models/expressions.py:13252 ms1.3%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.filterdjango/db/models/query.py:15422 ms1.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.3%
Query.build_filterdjango/db/models/sql/query.py:15732 ms1.3%
Query.get_initial_aliasdjango/db/models/sql/query.py:11162 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)4 ms2.6%
QuerySet.getdjango/db/models/query.py:6354 ms2.6%
QuerySet.__len__django/db/models/query.py:3724 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.6%
ModelIterable.__iter__django/db/models/query.py:954 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2632 ms1.3%
SQLCompiler.get_select.<locals>.<genexpr>django/db/models/sql/compiler.py:2682 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_upload_in_partsapps/api/tests.py:73348 ms31.8%
ProfileUploadTest.uploadapps/api/tests.py:49542 ms27.8%
_SharedTaskProxy.__call__potatoq/app.py:76342 ms27.8%
Task.__call__potatoq/task.py:18942 ms27.8%
process_profileapps/api/tasks.py:23922 ms14.6%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)8 ms5.3%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms1.3%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms1.3%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:2972 ms1.3%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.3%
QuerySet.deletedjango/db/models/query.py:12382 ms1.3%
Collector.deletedjango/db/models/deletion.py:4712 ms1.3%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:4462 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11102 ms1.3%
Model._do_updatedjango/db/models/base.py:12112 ms1.3%
QuerySet._updatedjango/db/models/query.py:13272 ms1.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms1.3%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms1.3%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms1.3%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms1.3%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms1.3%
Dumper.quotepsycopg/adapt.py:592 ms1.3%
_JsonDumper.dumppsycopg/types/json.py:2182 ms1.3%
dumps<stdlib>/json/__init__.py:2342 ms1.3%
JSONEncoder.encode<stdlib>/json/encoder.py:2022 ms1.3%
JSONEncoder.iterencode<stdlib>/json/encoder.py:2632 ms1.3%
process_profile_partapps/projects/profiles.py:3448 ms5.3%
upsert_testsapps/projects/profiles.py:4518 ms5.3%
TestManager.upsertapps/projects/models.py:2292 ms1.3%
TestManager.slugs_forapps/projects/models.py:242 taken = set(self.filter(project_id=project_id, slug__in=set(new.values())).values_list("slug", flat=True))2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms1.3%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.3%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16622 ms1.3%
cursor_iterdjango/db/models/sql/compiler.py:22542 ms1.3%
cursor_iter.<locals>.<lambda>django/db/models/sql/compiler.py:22542 ms1.3%
DatabaseErrorWrapper.__call__.<locals>.innerdjango/db/utils.py:1012 ms1.3%
Cursor.fetchmanypsycopg/cursor.py:2682 ms1.3%
BaseTzLoader.loaddjango/db/backends/postgresql/psycopg_any.py:342 ms1.3%
TimestamptzLoader.loadpsycopg/types/datetime.py:4942 ms1.3%
TimestamptzLoader._load_isopsycopg/types/datetime.py:5042 ms1.3%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms1.3%
QuerySet.firstdjango/db/models/query.py:11452 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.3%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.3%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms1.3%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.3%
Exact.as_sqldjango/db/models/lookups.py:4072 ms1.3%
process_profile_partapps/projects/profiles.py:338 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()2 ms1.3%
QuerySet.existsdjango/db/models/query.py:13372 ms1.3%
Query.has_resultsdjango/db/models/sql/query.py:6812 ms1.3%
SQLCompiler.has_resultsdjango/db/models/sql/compiler.py:15922 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)2 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
process_profileapps/api/tasks.py:25318 ms11.9%
_SharedTaskProxy.__call__potatoq/app.py:76318 ms11.9%
Task.__call__potatoq/task.py:18918 ms11.9%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):18 ms11.9%
finalize_profileapps/projects/profiles.py:4966 ms4.0%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.filterdjango/db/models/query.py:15422 ms1.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.3%
Query.build_filterdjango/db/models/sql/query.py:15772 ms1.3%
Query.setup_joinsdjango/db/models/sql/query.py:19772 ms1.3%
add_perfsapps/projects/rollups.py:722 ms1.3%
Model.__init__django/db/models/base.py:5562 ms1.3%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.3%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):4 ms2.6%
QuerySet.__iter__django/db/models/query.py:3904 ms2.6%
QuerySet._fetch_alldjango/db/models/query.py:20004 ms2.6%
ModelIterable.__iter__django/db/models/query.py:954 ms2.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16244 ms2.6%
CursorWrapper.executedjango/db/backends/utils.py:794 ms2.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:924 ms2.6%
CursorWrapper._executedjango/db/backends/utils.py:1054 ms2.6%
Cursor.executepsycopg/cursor.py:1134 ms2.6%
Connection.waitpsycopg/connection.py:4954 ms2.6%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profileapps/projects/profiles.py:488 ProfilePart.objects.filter(profile=profile).exclude(pk__in=[part.pk for part in current]).delete()2 ms1.3%
QuerySet.deletedjango/db/models/query.py:12382 ms1.3%
Collector.deletedjango/db/models/deletion.py:4712 ms1.3%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
finalize_profileapps/projects/profiles.py:491 duplicates = rows.values("test").annotate(count=Count("id"), keep=Max("id")).filter(count__gt=1)2 ms1.3%
finalize_profileapps/projects/profiles.py:5042 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms1.3%
Model.savedjango/db/models/base.py:8742 ms1.3%
Model.save_basedjango/db/models/base.py:9662 ms1.3%
Model._save_tabledjango/db/models/base.py:11102 ms1.3%
Model._do_updatedjango/db/models/base.py:12112 ms1.3%
QuerySet._updatedjango/db/models/query.py:13272 ms1.3%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(6 ms4.0%
Client.postdjango/test/client.py:11536 ms4.0%
RequestFactory.postdjango/test/client.py:4996 ms4.0%
RequestFactory.genericdjango/test/client.py:6716 ms4.0%
Client.requestdjango/test/client.py:10826 ms4.0%
ClientHandler.__call__django/test/client.py:1864 ms2.6%
BaseHandler.get_responsedjango/core/handlers/base.py:1414 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1304 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1234 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
MiddlewareMixin.__call__django/utils/deprecation.py:3094 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:344 ms2.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:554 ms2.6%
BaseHandler._get_responsedjango/core/handlers/base.py:1984 ms2.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:654 ms2.6%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:374 ms2.6%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:644 ms2.6%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.3%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:752 ms1.3%
profile_uploadapps/api/urls.py:1592 ms1.3%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)2 ms1.3%
compress<stdlib>/gzip.py:6682 ms1.3%
ClientHandler.__call__django/test/client.py:2072 ms1.3%
HttpResponseBase.closedjango/http/response.py:3412 ms1.3%
Signal.senddjango/dispatch/dispatcher.py:2092 ms1.3%
ProfileUploadTest.test_upload_in_partsapps/api/tests.py:72924 ms15.9%
ProfileUploadTest.uploadapps/api/tests.py:49516 ms10.6%
_SharedTaskProxy.__call__potatoq/app.py:76316 ms10.6%
Task.__call__potatoq/task.py:18916 ms10.6%
process_profileapps/api/tasks.py:23912 ms7.9%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)6 ms4.0%
claim_partapps/projects/profiles.py:360 ProfilePart.objects.filter(profile=profile, index=part.index, id__lt=part.id).delete() # superseded uploads2 ms1.3%
QuerySet.deletedjango/db/models/query.py:12382 ms1.3%
Collector.deletedjango/db/models/deletion.py:4712 ms1.3%
QuerySet._raw_deletedjango/db/models/query.py:12602 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
claim_partapps/projects/profiles.py:376 project = profile.project2 ms1.3%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms1.3%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7952 ms1.3%
SQLCompiler.compiledjango/db/models/sql/compiler.py:5782 ms1.3%
WhereNode.as_sqldjango/db/models/sql/where.py:1512 ms1.3%
process_profile_partapps/projects/profiles.py:3444 ms2.6%
upsert_testsapps/projects/profiles.py:4514 ms2.6%
TestManager.upsertapps/projects/models.py:2292 ms1.3%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms1.3%
QuerySet.__iter__django/db/models/query.py:3902 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms1.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms1.3%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms1.3%
QuerySet._insertdjango/db/models/query.py:19182 ms1.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profile_partapps/projects/profiles.py:347 ProfilePart.objects.filter(pk=part.pk).update(2 ms1.3%
QuerySet.updatedjango/db/models/query.py:13002 ms1.3%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
process_profileapps/api/tasks.py:2532 ms1.3%
_SharedTaskProxy.__call__potatoq/app.py:7632 ms1.3%
Task.__call__potatoq/task.py:1892 ms1.3%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):2 ms1.3%
Atomic.__exit__django/db/transaction.py:2472 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms1.3%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(8 ms5.3%
Client.postdjango/test/client.py:11538 ms5.3%
RequestFactory.postdjango/test/client.py:4998 ms5.3%
RequestFactory.genericdjango/test/client.py:6718 ms5.3%
Client.requestdjango/test/client.py:10828 ms5.3%
ClientHandler.__call__django/test/client.py:1868 ms5.3%
BaseHandler.get_responsedjango/core/handlers/base.py:1418 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:1308 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:1238 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
MiddlewareMixin.__call__django/utils/deprecation.py:3098 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:348 ms5.3%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:558 ms5.3%
BaseHandler._get_responsedjango/core/handlers/base.py:1988 ms5.3%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:658 ms5.3%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:378 ms5.3%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:648 ms5.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:754 ms2.6%
profile_uploadapps/api/urls.py:1592 ms1.3%
compressapps/projects/profiles.py:108 return gzip.compress(data, compresslevel=6)2 ms1.3%
compress<stdlib>/gzip.py:6682 ms1.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:72 project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))2 ms1.3%
get_object_or_404django/shortcuts.py:902 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
Query.get_compilerdjango/db/models/sql/query.py:3692 ms1.3%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))2 ms1.3%
Atomic.__enter__django/db/transaction.py:2112 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms1.3%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_upload_in_partsapps/api/tests.py:7302 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:792 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms1.3%
Cursor.executepsycopg/cursor.py:1132 ms1.3%
Connection.waitpsycopg/connection.py:4952 ms1.3%
ProfileUploadTest.test_upload_in_partsapps/api/tests.py:7352 ms1.3%
Model.refresh_from_dbdjango/db/models/base.py:7582 ms1.3%
QuerySet.getdjango/db/models/query.py:6352 ms1.3%
QuerySet.__len__django/db/models/query.py:3722 ms1.3%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms1.3%
ModelIterable.__iter__django/db/models/query.py:952 ms1.3%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms1.3%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms1.3%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:882 ms1.3%
WhereNode.split_having_qualifydjango/db/models/sql/where.py:472 ms1.3%
ProfileUploadTest.test_upload_in_partsapps/api/tests.py:7402 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms1.3%
QuerySet.filterdjango/db/models/query.py:15422 ms1.3%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms1.3%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms1.3%
Query.add_qdjango/db/models/sql/query.py:16712 ms1.3%
Query._add_qdjango/db/models/sql/query.py:17032 ms1.3%
Query.build_filterdjango/db/models/sql/query.py:15992 ms1.3%
Query.trim_joinsdjango/db/models/sql/query.py:20212 ms1.3%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms1.3%
TestCase._fixture_teardowndjango/test/testcases.py:14972 ms1.3%
TestCase._rollback_atomicsdjango/test/testcases.py:14052 ms1.3%
Atomic.__exit__django/db/transaction.py:2832 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.savepoint_rollbackdjango/db/backends/base/base.py:4132 ms1.3%
BaseDatabaseWrapper._savepoint_rollbackdjango/db/backends/base/base.py:3702 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
BaseDatabaseWrapper.cursordjango/db/backends/base/base.py:3202 ms1.3%
BaseDatabaseWrapper._cursordjango/db/backends/base/base.py:2982 ms1.3%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms1.3%
DatabaseWrapper.create_cursordjango/db/backends/postgresql/base.py:4352 ms1.3%
AdaptersMap.get_loaderpsycopg/_adapters_map.py:2732 ms1.3%
teardown0.24 ms0.2%
Estimated from 76 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/api/tests.py:487
response = self.client.post(
ProfileUploadTest.upload
· Libraries
|
28 ms |
|
apps/api/urls.py:73
touch_token(request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view
· Database
|
8 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
8 ms |
|
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile
· Database
|
8 ms |
|
apps/projects/profiles.py:483
for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):
finalize_profile
· Database
|
6 ms |
|
apps/api/tasks.py:259
if finalize_profile(profile_id):
finalize_profile_parts
· Database
|
6 ms |
|
apps/api/urls.py:72
project = get_object_or_404(Project, secrettokens__token=request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view
· Database
|
4 ms |
|
apps/projects/profiles.py:335
part = ProfilePart.objects.filter(pk=part.pk).first()
process_profile_part
· Database
|
4 ms |
|
apps/projects/profiles.py:338
or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()
process_profile_part
· Database
|
4 ms |
|
apps/projects/profiles.py:376
project = profile.project
claim_part
· Database
|
4 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.06 ms |
| _template_string_if_invalid_marker function | 0.06 ms |
| _django_set_urlconf function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _django_db_marker function | 0.05 ms |
| _django_clear_site_cache function | 0.05 ms |
| monkeypatch function | 0.03 ms |
Database
133 queries · 50 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
12×
SELECT "projects_profilepart"."id", "projects_profilepart"."profile_id", "projects_profilepart"."index", "projects_profilepart"."count", "projects_profilepart"."checksum", "projects_profilepart"."status", "projects_profilepart"."error", "projects_profilepart"."tests_count", "projects_profilepart"."…
11×
SELECT "projects_profile"."id", "projects_profile"."project_id", "projects_profile"."number", "projects_profile"."environment_id", "projects_profile"."session_id", "projects_profile"."run_id", "projects_profile"."commit_id", "projects_profile"."ingest_id", "projects_profile"."external_id", "project…
6×
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…
4×
SELECT "projects_environment"."id", "projects_environment"."project_id", "projects_environment"."name", "projects_environment"."kind", "projects_environment"."provider", "projects_environment"."details", "projects_environment"."date_first_seen", "projects_environment"."date_last_seen" FROM "project…
3×
SELECT "projects_secrettokens"."id" AS "pk" FROM "projects_secrettokens" WHERE (("projects_secrettokens"."date_last_used" < %s OR "projects_secrettokens"."date_last_used" IS NULL) AND "projects_secrettokens"."token" = %s) FOR UPDATE SKIP LOCKED
Biggest pieces of work
|
call test body
apps/api/tests.py:727
|
149 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 ms |
| teardown pytest internals | 0.24 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 | |
|---|---|---|---|---|
| 14 minutes ago | CI github-actions:test | passed | 153 ms | Profile |
| 39 minutes ago | CI github-actions:test | passed | 135 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 281 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 85 ms | Profile |
| 7 hours ago | CI github-actions:test | passed | 147 ms | Profile |