CI
github-actions:test
5 runs
Average
75 ms
median 82 ms
max 86 ms
max 86 ms
Phases
Setup 0.72 ms
Call 74 ms
Teardown 0.16 ms
Categories
Database 59 ms
App code 1 ms
Test code 0.36 ms
Other (Libraries, Serialization, Unsampled) 14 ms
61 database queries per run
Needs 201 KB of memory (max 408 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 2 hours ago ·
open run
call82 ms98.9%
CallInfo.from_call_pytest/runner.py:35382 ms98.9%
call_and_report.<locals>.<lambda>_pytest/runner.py:24582 ms98.9%
HookCaller.__call__pluggy/_hooks.py:51282 ms98.9%
PluginManager._hookexecpluggy/_manager.py:12082 ms98.9%
_multicallpluggy/_callers.py:12182 ms98.9%
pytest_runtest_call_pytest/runner.py:17982 ms98.9%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:57382 ms98.9%
SimpleTestCase.__call__django/test/testcases.py:31382 ms98.9%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36879 ms94.6%
TestCase.__call__<stdlib>/unittest/case.py:74779 ms94.6%
TestCase.run<stdlib>/unittest/case.py:69179 ms94.6%
TestCase._callTestMethod<stdlib>/unittest/case.py:63779 ms94.6%
ProfileUploadTest.test_upload_gzipapps/api/tests.py:578 response = self.upload(gzip.compress(json.dumps(self.document()).encode()), content_encoding="gzip")75 ms90.3%
ProfileUploadTest.uploadapps/api/tests.py:49545 ms53.7%
_SharedTaskProxy.__call__potatoq/app.py:76345 ms53.7%
Task.__call__potatoq/task.py:18945 ms53.7%
process_profileapps/api/tasks.py:23927 ms32.2%
process_profile_partapps/projects/profiles.py:342 profile = claim_part(part, document)11 ms12.9%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:11611 ms12.9%
claim_partapps/projects/profiles.py:358 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)2 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
claim_partapps/projects/profiles.py:359 ProfilePart.objects.filter(pk=part.pk).update(status=ProfilePart.StatusTypes.PENDING)2 ms2.1%
QuerySet.updatedjango/db/models/query.py:13002 ms2.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
claim_partapps/projects/profiles.py:3782 ms2.1%
get_or_create_environmentapps/projects/environments.py:63 obj, created = Environment.objects.get_or_create(2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.get_or_createdjango/db/models/query.py:9942 ms2.1%
QuerySet.createdjango/db/models/query.py:6692 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11622 ms2.1%
claim_partapps/projects/profiles.py:383 commit, _ = Commit.objects.get_or_create(2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.get_or_createdjango/db/models/query.py:9872 ms2.1%
QuerySet.getdjango/db/models/query.py:6252 ms2.1%
QuerySet.filterdjango/db/models/query.py:15422 ms2.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.1%
Query.add_qdjango/db/models/sql/query.py:16712 ms2.1%
Query._add_qdjango/db/models/sql/query.py:17032 ms2.1%
claim_partapps/projects/profiles.py:4332 ms2.1%
claim_partapps/projects/profiles.py:4462 ms2.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11102 ms2.1%
Model._do_updatedjango/db/models/base.py:12112 ms2.1%
QuerySet._updatedjango/db/models/query.py:13272 ms2.1%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:21402 ms2.1%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:21112 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profile_partapps/projects/profiles.py:3447 ms8.6%
upsert_testsapps/projects/profiles.py:4517 ms8.6%
TestManager.upsertapps/projects/models.py:2294 ms4.3%
TestManager.slugs_forapps/projects/models.py:240 existing = dict(self.filter(project_id=project_id, name__in=names).values_list("name", "slug"))2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ValuesListIterable.__iter__django/db/models/query.py:2382 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
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 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profile_partapps/projects/profiles.py:345 write_perfs(profile, part, entries, tests)5 ms6.4%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1165 ms6.4%
write_perfsapps/projects/profiles.py:458 TestPerf.objects.bulk_create(4 ms4.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:874 ms4.3%
QuerySet.bulk_createdjango/db/models/query.py:8334 ms4.3%
QuerySet._batched_insertdjango/db/models/query.py:19564 ms4.3%
QuerySet._insertdjango/db/models/query.py:19184 ms4.3%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19242 ms2.1%
SQLInsertCompiler.as_sqldjango/db/models/sql/compiler.py:18132 ms2.1%
SQLInsertCompiler.prepare_valuedjango/db/models/sql/compiler.py:17422 ms2.1%
Field.get_db_prep_savedjango/db/models/fields/__init__.py:10112 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
write_perfsapps/projects/profiles.py:457 TestPerf.objects.filter(profile=profile, part=part.index).delete()2 ms2.1%
QuerySet.deletedjango/db/models/query.py:12382 ms2.1%
Collector.deletedjango/db/models/deletion.py:4582 ms2.1%
Atomic.__enter__django/db/transaction.py:1832 ms2.1%
process_profile_partapps/projects/profiles.py:335 part = ProfilePart.objects.filter(pk=part.pk).first()2 ms2.1%
QuerySet.firstdjango/db/models/query.py:11452 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profile_partapps/projects/profiles.py:3462 ms2.1%
write_snapshotsapps/projects/profiles.py:313 cursor.executemany(SNAPSHOT_UPSERT, batch)2 ms2.1%
CursorWrapper.executemanydjango/db/backends/utils.py:842 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executemanydjango/db/backends/utils.py:1142 ms2.1%
Cursor.executemanypsycopg/cursor.py:1372 ms2.1%
_GeneratorContextManager.__exit__<stdlib>/contextlib.py:2102 ms2.1%
Connection._pipeline_nolockpsycopg/connection.py:4722 ms2.1%
Pipeline.__exit__psycopg/_pipeline.py:732 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
process_profileapps/api/tasks.py:25316 ms19.3%
_SharedTaskProxy.__call__potatoq/app.py:76316 ms19.3%
Task.__call__potatoq/task.py:18916 ms19.3%
finalize_profile_partsapps/api/tasks.py:259 if finalize_profile(profile_id):16 ms19.3%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:11613 ms15.0%
finalize_profileapps/projects/profiles.py:4965 ms6.4%
add_perfsapps/projects/rollups.py:30 for perf in perfs:2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.bulk_createdjango/db/models/query.py:8332 ms2.1%
QuerySet._batched_insertdjango/db/models/query.py:19562 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2052 ms2.1%
BaseCursor._convert_querypsycopg/_cursor_base.py:4652 ms2.1%
PostgresClientQuery.convertpsycopg/_queries.py:2892 ms2.1%
PostgresClientQuery.dumppsycopg/_queries.py:2992 ms2.1%
PostgresClientQuery.dump.<locals>.<genexpr>psycopg/_queries.py:3002 ms2.1%
Dumper.quotepsycopg/adapt.py:592 ms2.1%
ListDumper.dumppsycopg/types/array.py:1842 ms2.1%
finalize_profileapps/projects/profiles.py:479 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)2 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1022 ms2.1%
QueryStats.addflakytest/profiling/dbtrack.py:382 ms2.1%
normalize_sqlflakytest/profiling/dbtrack.py:242 ms2.1%
finalize_profileapps/projects/profiles.py:483 for part in ProfilePart.objects.filter(profile=profile).defer("document").order_by("index", "id"):2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
finalize_profileapps/projects/profiles.py:4892 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.filterdjango/db/models/query.py:15422 ms2.1%
QuerySet._filter_or_excludedjango/db/models/query.py:15602 ms2.1%
QuerySet._filter_or_exclude_inplacedjango/db/models/query.py:15702 ms2.1%
finalize_profileapps/projects/profiles.py:492 for duplicate in duplicates:2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ValuesIterable.__iter__django/db/models/query.py:2222 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.1%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1154 ms4.3%
Atomic.__enter__django/db/transaction.py:2112 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
Atomic.__exit__django/db/transaction.py:2472 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2752 ms2.1%
process_profileapps/api/tasks.py:237 part = ProfilePart.objects.select_related("profile").get(id=part_id)2 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3172 ms2.1%
ProfileUploadTest.uploadapps/api/tests.py:487 response = self.client.post(30 ms36.5%
Client.postdjango/test/client.py:115330 ms36.5%
RequestFactory.postdjango/test/client.py:49930 ms36.5%
RequestFactory.genericdjango/test/client.py:67130 ms36.5%
Client.requestdjango/test/client.py:108230 ms36.5%
ClientHandler.__call__django/test/client.py:17316 ms19.3%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6216 ms19.3%
__init____init__:-116 ms19.3%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10416 ms19.3%
WhiteNoise.add_fileswhitenoise/base.py:10816 ms19.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12013 ms15.0%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13111 ms12.9%
WhiteNoise.get_static_filewhitenoise/base.py:2089 ms10.7%
StaticFile.__init__whitenoise/responders.py:734 ms4.3%
StaticFile.get_headerswhitenoise/responders.py:1672 ms2.1%
StaticFile.get_headerswhitenoise/responders.py:1712 ms2.1%
StaticFile.__init__whitenoise/responders.py:762 ms2.1%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms2.1%
StaticFile.__init__whitenoise/responders.py:772 ms2.1%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms2.1%
StaticFile.__init__whitenoise/responders.py:722 ms2.1%
StaticFile.get_file_statswhitenoise/responders.py:1632 ms2.1%
WhiteNoise.get_static_filewhitenoise/base.py:2032 ms2.1%
WhiteNoise.add_cache_headerswhitenoise/base.py:2242 ms2.1%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1762 ms2.1%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1972 ms2.1%
URLMixin.urldebug_toolbar/panels/staticfiles.py:202 ms2.1%
HashedFilesMixin.urldjango/contrib/staticfiles/storage.py:2052 ms2.1%
HashedFilesMixin._urldjango/contrib/staticfiles/storage.py:1862 ms2.1%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1154 ms4.3%
scantreewhitenoise/base.py:2624 ms4.3%
scantreewhitenoise/base.py:2624 ms4.3%
scantreewhitenoise/base.py:2644 ms4.3%
ClientHandler.__call__django/test/client.py:18614 ms17.2%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3414 ms17.2%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms17.2%
BaseHandler._get_responsedjango/core/handlers/base.py:19814 ms17.2%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6514 ms17.2%
jsonify_errors.<locals>.wrapped_viewapps/api/urls.py:3714 ms17.2%
require_http_methods.<locals>.decorator.<locals>.innerdjango/views/decorators/http.py:6414 ms17.2%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:7511 ms12.9%
profile_uploadapps/api/urls.py:1507 ms8.6%
get_or_create_numberedapps/projects/models.py:18 existing = model.objects.filter(project=project, **lookup).first()5 ms6.4%
QuerySet.firstdjango/db/models/query.py:11455 ms6.4%
QuerySet.__iter__django/db/models/query.py:3905 ms6.4%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms6.4%
ModelIterable.__iter__django/db/models/query.py:1274 ms4.3%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15774 ms4.3%
SQLCompiler.get_convertersdjango/db/models/sql/compiler.py:15264 ms4.3%
Col.get_db_convertersdjango/db/models/expressions.py:13394 ms4.3%
Field.__eq__django/db/models/fields/__init__.py:6772 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms2.1%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms2.1%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms2.1%
Expression.__hash__django/db/models/expressions.py:5622 ms2.1%
cached_property.__get__django/utils/functional.py:472 ms2.1%
Expression.identitydjango/db/models/expressions.py:5522 ms2.1%
Expression._identitydjango/db/models/expressions.py:5302 ms2.1%
get_or_create_numberedapps/projects/models.py:24 return model.objects.create(project=project, number=number, **lookup, **(defaults or {})), True2 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.createdjango/db/models/query.py:6692 ms2.1%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)2 ms2.1%
Model.savedjango/db/models/base.py:8742 ms2.1%
Model.save_basedjango/db/models/base.py:9662 ms2.1%
Model._save_tabledjango/db/models/base.py:11672 ms2.1%
Model._do_insertdjango/db/models/base.py:12182 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet._insertdjango/db/models/query.py:19182 ms2.1%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:19252 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
profile_uploadapps/api/urls.py:152 part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()2 ms2.1%
QuerySet.firstdjango/db/models/query.py:11452 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms2.1%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms2.1%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:862 ms2.1%
SQLCompiler.setup_querydjango/db/models/sql/compiler.py:752 ms2.1%
SQLCompiler.get_selectdjango/db/models/sql/compiler.py:3302 ms2.1%
profile_uploadapps/api/urls.py:1632 ms2.1%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms2.1%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms2.1%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
api_request.<locals>.decorator.<locals>.wrapped_viewapps/api/urls.py:73 touch_token(request.headers.get("Authorization"))4 ms4.3%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1162 ms2.1%
touch_tokenapps/api/urls.py:59 SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)2 ms2.1%
QuerySet.__iter__django/db/models/query.py:3902 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
FlatValuesListIterable.__iter__django/db/models/query.py:2772 ms2.1%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15732 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
ContextDecorator.__call__.<locals>.inner<stdlib>/contextlib.py:1152 ms2.1%
Atomic.__exit__django/db/transaction.py:2472 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepoint_commitdjango/db/backends/base/base.py:4312 ms2.1%
BaseDatabaseWrapper._savepoint_commitdjango/db/backends/base/base.py:3752 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:2862 ms2.1%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:782 ms2.1%
ProfileUploadTest.test_upload_gzipapps/api/tests.py:5802 ms2.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:872 ms2.1%
QuerySet.getdjango/db/models/query.py:6352 ms2.1%
QuerySet.__len__django/db/models/query.py:3722 ms2.1%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms2.1%
ModelIterable.__iter__django/db/models/query.py:952 ms2.1%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
ProfileUploadTest.test_upload_gzipapps/api/tests.py:5822 ms2.1%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3592 ms2.1%
TransactionTestCase._pre_setupdjango/test/testcases.py:1164 cls._fixture_setup()2 ms2.1%
TestCase._fixture_setupdjango/test/testcases.py:14782 ms2.1%
TestCase._enter_atomicsdjango/test/testcases.py:13962 ms2.1%
Atomic.__enter__django/db/transaction.py:2112 ms2.1%
async_unsafe.<locals>.decorator.<locals>.innerdjango/utils/asyncio.py:262 ms2.1%
BaseDatabaseWrapper.savepointdjango/db/backends/base/base.py:4002 ms2.1%
BaseDatabaseWrapper._savepointdjango/db/backends/base/base.py:3672 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms2.1%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3122 ms2.1%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3712 ms2.1%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()2 ms2.1%
TestCase._fixture_teardowndjango/test/testcases.py:14952 ms2.1%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms2.1%
CursorWrapper.executedjango/db/backends/utils.py:792 ms2.1%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms2.1%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms2.1%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms2.1%
Cursor.executepsycopg/cursor.py:1132 ms2.1%
Connection.waitpsycopg/connection.py:4952 ms2.1%
Estimated from 46 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
apps/api/tests.py:487
response = self.client.post(
ProfileUploadTest.upload
· Libraries
|
16 ms |
|
apps/projects/models.py:18
existing = model.objects.filter(project=project, **lookup).first()
get_or_create_numbered
· Database
|
5 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
4 ms |
|
apps/projects/profiles.py:458
TestPerf.objects.bulk_create(
write_perfs
· Database
|
4 ms |
|
apps/api/tasks.py:259
if finalize_profile(profile_id):
finalize_profile_parts
· Database
|
4 ms |
|
apps/api/urls.py:59
SecretTokens.objects.filter(pk__in=list(stale)).update(date_last_used=now)
touch_token
· Database
|
2 ms |
|
apps/api/urls.py:73
touch_token(request.headers.get("Authorization"))
api_request.<locals>.decorator.<locals>.wrapped_view
· Database
|
2 ms |
|
apps/api/urls.py:152
part = ProfilePart.objects.filter(profile=profile, index=index).order_by("-id").first()
profile_upload
· Database
|
2 ms |
|
apps/projects/models.py:59
return reverse(name, args=[self.organization.slug, self.slug, *args])
Project.url
· Database
|
2 ms |
|
apps/api/tasks.py:237
part = ProfilePart.objects.select_related("profile").get(id=part_id)
process_profile
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| _django_set_urlconf function | 0.03 ms |
| _live_server_helper function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
61 queries · 24 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
4×
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…
4×
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"."…
Biggest pieces of work
|
call test body
apps/api/tests.py:578
|
79 ms |
|
call _pre_setup
django/test/testcases.py:1164
|
2 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
2 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 | |
|---|---|---|---|---|
| 2 hours ago | CI github-actions:test | passed | 83 ms | Profile |
| 2 hours ago | CI github-actions:test | passed | 82 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 86 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 45 ms | Profile |
| 9 hours ago | CI github-actions:test | passed | 78 ms | Profile |