Tests / apps/projects/tests.py
SeedDemoCommandTest::test_seed_demo
First seen 3 weeks ago in 78a4357
CI
github-actions:test
12 runs
Average
1.77 s
median 1.89 s
max 2.30 s
max 2.30 s
Phases
Setup 10 ms
Call 1.76 s
Teardown 1 ms
Categories
Database 1.15 s
App code 130 ms
Test code 0.12 ms
Other (Libraries, Serialization, Deep copies, Imports, ...) 495 ms
1321 database queries per run
Needs 874 KB of memory (max 2 MB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, 16 hours ago ·
open run
setup10 ms0.5%
call1.89 s99.5%
SeedDemoCommandTest.test_seed_demoapps/projects/tests.py:1145 call_command("seed_demo", email="[email protected]", days=6, public=True, stdout=out)1.74 s92.0%
call_commanddjango/core/management/__init__.py:1951.74 s91.7%
BaseCommand.executedjango/core/management/base.py:4601.74 s91.7%
Command.handleapps/projects/management/commands/seed_demo.py:184665 ms35.1%
store_profileapps/projects/testing.py:373423 ms22.3%
process_profile_partapps/projects/profiles.py:367161 ms8.5%
write_snapshotsapps/projects/profiles.py:333112 ms5.9%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:331112 ms5.9%
write_snapshots.<locals>.rowapps/projects/profiles.py:327 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),104 ms5.5%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)50 ms2.7%
compress<stdlib>/gzip.py:66848 ms2.5%
1 smaller frames hidden
dumps<stdlib>/json/__init__.py:24126 ms1.4%
JSONEncoder.encode<stdlib>/json/encoder.py:20224 ms1.3%
JSONEncoder.iterencode<stdlib>/json/encoder.py:26324 ms1.3%
snapshot_documentapps/projects/profiles.py:27124 ms1.3%
1 smaller frames hidden
2 smaller frames hidden
write_snapshotsapps/projects/profiles.py:334 cursor.executemany(SNAPSHOT_UPSERT, batch)48 ms2.5%
CursorWrapper.executemanydjango/db/backends/utils.py:8448 ms2.5%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9248 ms2.5%
CursorWrapper._executemanydjango/db/backends/utils.py:11446 ms2.4%
Cursor.executemanypsycopg/cursor.py:13736 ms1.9%
Connection._pipeline_nolockpsycopg/connection.py:47236 ms1.9%
Pipeline.__exit__psycopg/_pipeline.py:7336 ms1.9%
Connection.waitpsycopg/connection.py:49536 ms1.9%
Cursor.executemanypsycopg/cursor.py:13811 ms0.6%
Connection.waitpsycopg/connection.py:49511 ms0.6%
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)106 ms5.6%
claim_partapps/projects/profiles.py:46724 ms1.3%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)24 ms1.3%
Model.savedjango/db/models/base.py:87424 ms1.3%
Model.save_basedjango/db/models/base.py:96624 ms1.3%
Model._save_tabledjango/db/models/base.py:111022 ms1.2%
Model._do_updatedjango/db/models/base.py:121122 ms1.2%
QuerySet._updatedjango/db/models/query.py:132722 ms1.2%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:214022 ms1.2%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:211122 ms1.2%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162422 ms1.2%
CursorWrapper.executedjango/db/backends/utils.py:7922 ms1.2%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9222 ms1.2%
CursorWrapper._executedjango/db/backends/utils.py:10519 ms1.0%
Cursor.executepsycopg/cursor.py:11319 ms1.0%
Connection.waitpsycopg/connection.py:49519 ms1.0%
1 smaller frames hidden
claim_partapps/projects/profiles.py:421 session = Session.objects.filter(project=project, ingest_id=profile.ingest_id).select_related("run").first()16 ms0.8%
QuerySet.firstdjango/db/models/query.py:114515 ms0.8%
QuerySet.__iter__django/db/models/query.py:39015 ms0.8%
QuerySet._fetch_alldjango/db/models/query.py:200015 ms0.8%
ModelIterable.__iter__django/db/models/query.py:9513 ms0.7%
1 smaller frames hidden
1 smaller frames hidden
claim_partapps/projects/profiles.py:379 profile = Profile.objects.select_for_update(no_key=True).get(pk=part.profile_id)15 ms0.8%
QuerySet.getdjango/db/models/query.py:63513 ms0.7%
QuerySet.__len__django/db/models/query.py:37213 ms0.7%
QuerySet._fetch_alldjango/db/models/query.py:200013 ms0.7%
ModelIterable.__iter__django/db/models/query.py:9511 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
claim_partapps/projects/profiles.py:39912 ms0.6%
8 smaller frames hidden
process_profile_partapps/projects/profiles.py:36548 ms2.5%
upsert_testsapps/projects/profiles.py:47248 ms2.5%
TestManager.upsertapps/projects/models.py:230 self.bulk_create( # sorted, so uploads sharing tests lock their rows in the same order20 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8720 ms1.0%
QuerySet.bulk_createdjango/db/models/query.py:83319 ms1.0%
QuerySet._batched_insertdjango/db/models/query.py:195619 ms1.0%
QuerySet._insertdjango/db/models/query.py:191819 ms1.0%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192515 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:7915 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9215 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:10515 ms0.8%
Cursor.executepsycopg/cursor.py:11315 ms0.8%
Connection.waitpsycopg/connection.py:49515 ms0.8%
1 smaller frames hidden
1 smaller frames hidden
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}15 ms0.8%
QuerySet.__iter__django/db/models/query.py:39013 ms0.7%
QuerySet._fetch_alldjango/db/models/query.py:200013 ms0.7%
ModelIterable.__iter__django/db/models/query.py:9512 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162411 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
TestManager.upsertapps/projects/models.py:22911 ms0.6%
1 smaller frames hidden
process_profile_partapps/projects/profiles.py:36641 ms2.2%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(25 ms1.3%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8725 ms1.3%
QuerySet.bulk_createdjango/db/models/query.py:83322 ms1.2%
QuerySet._batched_insertdjango/db/models/query.py:195622 ms1.2%
QuerySet._insertdjango/db/models/query.py:191822 ms1.2%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192517 ms0.9%
CursorWrapper.executedjango/db/backends/utils.py:7917 ms0.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9217 ms0.9%
CursorWrapper._executedjango/db/backends/utils.py:10517 ms0.9%
Cursor.executepsycopg/cursor.py:11317 ms0.9%
Connection.waitpsycopg/connection.py:49517 ms0.9%
1 smaller frames hidden
2 smaller frames hidden
3 smaller frames hidden
process_profile_partapps/projects/profiles.py:36232 ms1.7%
load_documentapps/projects/profiles.py:13332 ms1.7%
loadsapps/projects/profiles.py:118 document = json.loads(data)21 ms1.1%
loads<stdlib>/json/__init__.py:37121 ms1.1%
JSONDecoder.decode<stdlib>/json/decoder.py:35821 ms1.1%
JSONDecoder.raw_decode<stdlib>/json/decoder.py:37421 ms1.1%
3 smaller frames hidden
process_profile_partapps/projects/profiles.py:356 part = ProfilePart.objects.filter(pk=part.pk).first()15 ms0.8%
QuerySet.firstdjango/db/models/query.py:114511 ms0.6%
1 smaller frames hidden
2 smaller frames hidden
store_profileapps/projects/testing.py:374 finalize_profile(profile.id)123 ms6.5%
finalize_profileapps/projects/profiles.py:51752 ms2.7%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(17 ms0.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8717 ms0.9%
QuerySet.bulk_createdjango/db/models/query.py:83311 ms0.6%
QuerySet._batched_insertdjango/db/models/query.py:195611 ms0.6%
QuerySet._insertdjango/db/models/query.py:191811 ms0.6%
2 smaller frames hidden
add_perfsapps/projects/rollups.py:64 for row in TestDailyStats.objects.filter(16 ms0.8%
QuerySet.__iter__django/db/models/query.py:39015 ms0.8%
QuerySet._fetch_alldjango/db/models/query.py:200015 ms0.8%
ModelIterable.__iter__django/db/models/query.py:9512 ms0.6%
2 smaller frames hidden
1 smaller frames hidden
4 smaller frames hidden
finalize_profileapps/projects/profiles.py:52512 ms0.6%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)12 ms0.6%
Model.savedjango/db/models/base.py:87412 ms0.6%
Model.save_basedjango/db/models/base.py:96611 ms0.6%
Model._save_tabledjango/db/models/base.py:111011 ms0.6%
Model._do_updatedjango/db/models/base.py:121111 ms0.6%
QuerySet._updatedjango/db/models/query.py:132711 ms0.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:214011 ms0.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:211111 ms0.6%
finalize_profileapps/projects/profiles.py:516 Environment.objects.select_for_update(no_key=True).filter(pk=profile.environment_id).first()11 ms0.6%
QuerySet.firstdjango/db/models/query.py:114511 ms0.6%
QuerySet.__iter__django/db/models/query.py:39011 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:200011 ms0.6%
finalize_profileapps/projects/profiles.py:500 profile = Profile.objects.select_for_update(no_key=True).get(pk=profile_id)11 ms0.6%
QuerySet.getdjango/db/models/query.py:63511 ms0.6%
QuerySet.__len__django/db/models/query.py:37211 ms0.6%
QuerySet._fetch_alldjango/db/models/query.py:200011 ms0.6%
9 smaller frames hidden
store_profileapps/projects/testing.py:372 part = ProfilePart.objects.create(profile=profile, index=0, document=compress(data), document_size=len(data))54 ms2.9%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)42 ms2.2%
compress<stdlib>/gzip.py:66841 ms2.2%
1 smaller frames hidden
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8712 ms0.6%
QuerySet.createdjango/db/models/query.py:66912 ms0.6%
Model.savedjango/db/models/base.py:87412 ms0.6%
Model.save_basedjango/db/models/base.py:96612 ms0.6%
Model._save_tabledjango/db/models/base.py:116711 ms0.6%
Model._do_insertdjango/db/models/base.py:121811 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8711 ms0.6%
QuerySet._insertdjango/db/models/query.py:191811 ms0.6%
1 smaller frames hidden
store_profileapps/projects/testing.py:37137 ms2.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8737 ms2.0%
QuerySet.createdjango/db/models/query.py:66937 ms2.0%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)28 ms1.5%
Model.savedjango/db/models/base.py:87428 ms1.5%
Model.save_basedjango/db/models/base.py:96628 ms1.5%
Model._save_tabledjango/db/models/base.py:116726 ms1.4%
Model._do_insertdjango/db/models/base.py:121826 ms1.4%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8726 ms1.4%
QuerySet._insertdjango/db/models/query.py:191826 ms1.4%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192525 ms1.3%
CursorWrapper.executedjango/db/backends/utils.py:7925 ms1.3%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9225 ms1.3%
CursorWrapper._executedjango/db/backends/utils.py:10524 ms1.3%
Cursor.executepsycopg/cursor.py:11324 ms1.3%
Connection.waitpsycopg/connection.py:49524 ms1.3%
BaseCursor._execute_genpsycopg/_cursor_base.py:20615 ms0.8%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28615 ms0.8%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7815 ms0.8%
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
store_profileapps/projects/testing.py:370 data = json.dumps(document).encode()19 ms1.0%
dumps<stdlib>/json/__init__.py:23419 ms1.0%
JSONEncoder.encode<stdlib>/json/encoder.py:20219 ms1.0%
JSONEncoder.iterencode<stdlib>/json/encoder.py:26319 ms1.0%
1 smaller frames hidden
Command.handleapps/projects/management/commands/seed_demo.py:200528 ms27.8%
store_profileapps/projects/testing.py:373332 ms17.5%
process_profile_partapps/projects/profiles.py:367144 ms7.6%
write_snapshotsapps/projects/profiles.py:333108 ms5.7%
write_snapshots.<locals>.<genexpr>apps/projects/profiles.py:331108 ms5.7%
write_snapshots.<locals>.rowapps/projects/profiles.py:327 compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),106 ms5.6%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)53 ms2.8%
compress<stdlib>/gzip.py:66850 ms2.7%
1 smaller frames hidden
snapshot_documentapps/projects/profiles.py:27122 ms1.2%
dumps<stdlib>/json/__init__.py:24121 ms1.1%
JSONEncoder.encode<stdlib>/json/encoder.py:20221 ms1.1%
JSONEncoder.iterencode<stdlib>/json/encoder.py:26321 ms1.1%
3 smaller frames hidden
1 smaller frames hidden
write_snapshotsapps/projects/profiles.py:334 cursor.executemany(SNAPSHOT_UPSERT, batch)36 ms1.9%
CursorWrapper.executemanydjango/db/backends/utils.py:8436 ms1.9%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9236 ms1.9%
CursorWrapper._executemanydjango/db/backends/utils.py:11436 ms1.9%
Cursor.executemanypsycopg/cursor.py:13730 ms1.6%
Connection._pipeline_nolockpsycopg/connection.py:47230 ms1.6%
Pipeline.__exit__psycopg/_pipeline.py:7330 ms1.6%
Connection.waitpsycopg/connection.py:49530 ms1.6%
1 smaller frames hidden
process_profile_partapps/projects/profiles.py:363 profile = claim_part(part, document)62 ms3.3%
claim_partapps/projects/profiles.py:39915 ms0.8%
claim_partapps/projects/profiles.py:46713 ms0.7%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)13 ms0.7%
Model.savedjango/db/models/base.py:87413 ms0.7%
Model.save_basedjango/db/models/base.py:96613 ms0.7%
Model._save_tabledjango/db/models/base.py:111012 ms0.6%
Model._do_updatedjango/db/models/base.py:121112 ms0.6%
QuerySet._updatedjango/db/models/query.py:132712 ms0.6%
SQLUpdateCompiler.execute_returning_sqldjango/db/models/sql/compiler.py:214012 ms0.6%
SQLUpdateCompiler.execute_sqldjango/db/models/sql/compiler.py:211112 ms0.6%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162412 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:7912 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9212 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:10512 ms0.6%
Cursor.executepsycopg/cursor.py:11312 ms0.6%
Connection.waitpsycopg/connection.py:49512 ms0.6%
1 smaller frames hidden
9 smaller frames hidden
process_profile_partapps/projects/profiles.py:36640 ms2.1%
write_perfsapps/projects/profiles.py:479 TestPerf.objects.bulk_create(29 ms1.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8729 ms1.5%
QuerySet.bulk_createdjango/db/models/query.py:83329 ms1.5%
QuerySet._batched_insertdjango/db/models/query.py:195629 ms1.5%
QuerySet._insertdjango/db/models/query.py:191829 ms1.5%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192516 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:7916 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9216 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:10516 ms0.8%
Cursor.executepsycopg/cursor.py:11316 ms0.8%
Connection.waitpsycopg/connection.py:49516 ms0.8%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192413 ms0.7%
5 smaller frames hidden
process_profile_partapps/projects/profiles.py:36533 ms1.7%
upsert_testsapps/projects/profiles.py:47233 ms1.7%
TestManager.upsertapps/projects/models.py:22911 ms0.6%
TestManager.upsertapps/projects/models.py:236 return {test.name: test for test in self.filter(project=project, name__in=names)}11 ms0.6%
2 smaller frames hidden
process_profile_partapps/projects/profiles.py:36222 ms1.2%
load_documentapps/projects/profiles.py:13322 ms1.2%
loadsapps/projects/profiles.py:118 document = json.loads(data)20 ms1.0%
loads<stdlib>/json/__init__.py:37120 ms1.0%
JSONDecoder.decode<stdlib>/json/decoder.py:35820 ms1.0%
JSONDecoder.raw_decode<stdlib>/json/decoder.py:37420 ms1.0%
1 smaller frames hidden
process_profile_partapps/projects/profiles.py:359 or ProfilePart.objects.filter(profile_id=part.profile_id, index=part.index, id__gt=part.id).exists()13 ms0.7%
QuerySet.existsdjango/db/models/query.py:133711 ms0.6%
1 smaller frames hidden
4 smaller frames hidden
store_profileapps/projects/testing.py:374 finalize_profile(profile.id)79 ms4.2%
finalize_profileapps/projects/profiles.py:51725 ms1.3%
add_perfsapps/projects/rollups.py:88 TestDailyStats.objects.bulk_create(12 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8712 ms0.6%
QuerySet.bulk_createdjango/db/models/query.py:83312 ms0.6%
QuerySet._batched_insertdjango/db/models/query.py:195612 ms0.6%
QuerySet._insertdjango/db/models/query.py:191812 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192511 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms0.6%
1 smaller frames hidden
3 smaller frames hidden
8 smaller frames hidden
store_profileapps/projects/testing.py:372 part = ProfilePart.objects.create(profile=profile, index=0, document=compress(data), document_size=len(data))58 ms3.1%
compressapps/projects/profiles.py:111 return gzip.compress(data, compresslevel=6)48 ms2.5%
compress<stdlib>/gzip.py:66848 ms2.5%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8711 ms0.6%
QuerySet.createdjango/db/models/query.py:66911 ms0.6%
Model.savedjango/db/models/base.py:87411 ms0.6%
Model.save_basedjango/db/models/base.py:96611 ms0.6%
Model._save_tabledjango/db/models/base.py:116711 ms0.6%
Model._do_insertdjango/db/models/base.py:121811 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8711 ms0.6%
QuerySet._insertdjango/db/models/query.py:191811 ms0.6%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192511 ms0.6%
CursorWrapper.executedjango/db/backends/utils.py:7911 ms0.6%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9211 ms0.6%
CursorWrapper._executedjango/db/backends/utils.py:10511 ms0.6%
Cursor.executepsycopg/cursor.py:11311 ms0.6%
Connection.waitpsycopg/connection.py:49511 ms0.6%
store_profileapps/projects/testing.py:375 profile.refresh_from_db()22 ms1.2%
Model.refresh_from_dbdjango/db/models/base.py:75820 ms1.0%
QuerySet.getdjango/db/models/query.py:63520 ms1.0%
QuerySet.__len__django/db/models/query.py:37220 ms1.0%
QuerySet._fetch_alldjango/db/models/query.py:200020 ms1.0%
ModelIterable.__iter__django/db/models/query.py:9519 ms1.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162415 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:7915 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9215 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:10515 ms0.8%
Cursor.executepsycopg/cursor.py:11315 ms0.8%
Connection.waitpsycopg/connection.py:49515 ms0.8%
BaseCursor._execute_genpsycopg/_cursor_base.py:20611 ms0.6%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:28611 ms0.6%
ClientCursorMixin._execute_sendpsycopg/client_cursor.py:7811 ms0.6%
3 smaller frames hidden
1 smaller frames hidden
2 smaller frames hidden
store_profileapps/projects/testing.py:37119 ms1.0%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8719 ms1.0%
QuerySet.createdjango/db/models/query.py:66919 ms1.0%
Profile.saveapps/projects/models.py:466 super().save(*args, **kwargs)11 ms0.6%
2 smaller frames hidden
store_profileapps/projects/testing.py:370 data = json.dumps(document).encode()17 ms0.9%
dumps<stdlib>/json/__init__.py:23417 ms0.9%
JSONEncoder.encode<stdlib>/json/encoder.py:20216 ms0.8%
JSONEncoder.iterencode<stdlib>/json/encoder.py:26316 ms0.8%
Command.handleapps/projects/management/commands/seed_demo.py:183254 ms13.4%
Command.ingest_sessionapps/projects/management/commands/seed_demo.py:248 test, _ = Test.objects.get_or_create(149 ms7.9%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:87147 ms7.7%
QuerySet.get_or_createdjango/db/models/query.py:987111 ms5.9%
QuerySet.getdjango/db/models/query.py:635103 ms5.4%
QuerySet.__len__django/db/models/query.py:372102 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:2000102 ms5.4%
ModelIterable.__iter__django/db/models/query.py:9595 ms5.0%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:162475 ms4.0%
CursorWrapper.executedjango/db/backends/utils.py:7975 ms4.0%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9275 ms4.0%
CursorWrapper._executedjango/db/backends/utils.py:10567 ms3.6%
Cursor.executepsycopg/cursor.py:11367 ms3.6%
Connection.waitpsycopg/connection.py:49566 ms3.5%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:161112 ms0.6%
2 smaller frames hidden
3 smaller frames hidden
1 smaller frames hidden
QuerySet.get_or_createdjango/db/models/query.py:99428 ms1.5%
QuerySet.createdjango/db/models/query.py:66926 ms1.4%
Test.saveapps/projects/models.py:29317 ms0.9%
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))11 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
2 smaller frames hidden
Command.ingest_sessionapps/projects/management/commands/seed_demo.py:26421 ms1.1%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8721 ms1.1%
QuerySet.bulk_createdjango/db/models/query.py:83317 ms0.9%
QuerySet._batched_insertdjango/db/models/query.py:195617 ms0.9%
QuerySet._insertdjango/db/models/query.py:191817 ms0.9%
SQLInsertCompiler.execute_sqldjango/db/models/sql/compiler.py:192516 ms0.8%
CursorWrapper.executedjango/db/backends/utils.py:7916 ms0.8%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9216 ms0.8%
CursorWrapper._executedjango/db/backends/utils.py:10516 ms0.8%
Cursor.executepsycopg/cursor.py:11316 ms0.8%
Connection.waitpsycopg/connection.py:49516 ms0.8%
1 smaller frames hidden
1 smaller frames hidden
Command.ingest_sessionapps/projects/management/commands/seed_demo.py:21716 ms0.8%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8716 ms0.8%
Command.ingest_sessionapps/projects/management/commands/seed_demo.py:23516 ms0.8%
Command.ingest_sessionapps/projects/management/commands/seed_demo.py:22111 ms0.6%
BaseManager._get_queryset_methods.<locals>.create_method.<locals>.manager_methoddjango/db/models/manager.py:8711 ms0.6%
QuerySet.createdjango/db/models/query.py:66911 ms0.6%
6 smaller frames hidden
Command.handleapps/projects/management/commands/seed_demo.py:172218 ms11.5%
variantapps/projects/management/commands/seed_demo.py:83 document = copy.deepcopy(template)213 ms11.2%
deepcopy<stdlib>/copy.py:130213 ms11.2%
_deepcopy_dict<stdlib>/copy.py:201213 ms11.2%
deepcopy<stdlib>/copy.py:130213 ms11.2%
_deepcopy_list<stdlib>/copy.py:176213 ms11.2%
deepcopy<stdlib>/copy.py:130206 ms10.9%
_deepcopy_dict<stdlib>/copy.py:201194 ms10.3%
deepcopy<stdlib>/copy.py:130194 ms10.3%
_deepcopy_dict<stdlib>/copy.py:201190 ms10.0%
deepcopy<stdlib>/copy.py:130188 ms9.9%
_deepcopy_list<stdlib>/copy.py:176186 ms9.8%
deepcopy<stdlib>/copy.py:130186 ms9.8%
_deepcopy_dict<stdlib>/copy.py:201180 ms9.5%
deepcopy<stdlib>/copy.py:110180 ms9.5%
<GC>~180 ms9.5%
3 smaller frames hidden
1 smaller frames hidden
3 smaller frames hidden
1 smaller frames hidden
Command.handleapps/projects/management/commands/seed_demo.py:18958 ms3.1%
variantapps/projects/management/commands/seed_demo.py:83 document = copy.deepcopy(template)52 ms2.7%
deepcopy<stdlib>/copy.py:13050 ms2.7%
_deepcopy_dict<stdlib>/copy.py:20150 ms2.7%
deepcopy<stdlib>/copy.py:13050 ms2.7%
_deepcopy_list<stdlib>/copy.py:17650 ms2.7%
deepcopy<stdlib>/copy.py:13041 ms2.2%
_deepcopy_dict<stdlib>/copy.py:20129 ms1.5%
deepcopy<stdlib>/copy.py:13026 ms1.4%
_deepcopy_list<stdlib>/copy.py:17613 ms0.7%
deepcopy<stdlib>/copy.py:13011 ms0.6%
_deepcopy_dict<stdlib>/copy.py:20111 ms0.6%
1 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
6 smaller frames hidden
1 smaller frames hidden
SeedDemoCommandTest.test_seed_demoapps/projects/tests.py:115797 ms5.1%
Client.getdjango/test/client.py:112497 ms5.1%
RequestFactory.getdjango/test/client.py:47597 ms5.1%
RequestFactory.genericdjango/test/client.py:67197 ms5.1%
Client.requestdjango/test/client.py:108297 ms5.1%
ClientHandler.__call__django/test/client.py:18689 ms4.7%
BaseHandler.get_responsedjango/core/handlers/base.py:14189 ms4.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5589 ms4.7%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13089 ms4.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5589 ms4.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30989 ms4.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5589 ms4.7%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12389 ms4.7%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5589 ms4.7%
MiddlewareMixin.__call__django/utils/deprecation.py:30987 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30987 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30987 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30987 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30987 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30987 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3487 ms4.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5587 ms4.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19887 ms4.6%
project_dashboardapps/projects/urls.py:14416 ms0.8%
ci_vs_localapps/projects/analytics.py:73813 ms0.7%
2 smaller frames hidden
project_dashboardapps/projects/urls.py:15413 ms0.7%
project_dashboardapps/projects/urls.py:14212 ms0.6%
flaky_reportapps/projects/flakiness.py:25311 ms0.6%
1 smaller frames hidden
9 smaller frames hidden
1 smaller frames hidden
1 smaller frames hidden
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()36 ms1.9%
TestCase._fixture_teardowndjango/test/testcases.py:149533 ms1.7%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:48333 ms1.7%
CursorWrapper.executedjango/db/backends/utils.py:7933 ms1.7%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:9233 ms1.7%
CursorWrapper._executedjango/db/backends/utils.py:10333 ms1.7%
Cursor.executepsycopg/cursor.py:11333 ms1.7%
Connection.waitpsycopg/connection.py:49533 ms1.7%
2 smaller frames hidden
2 smaller frames hidden
teardown0.76 ms0.0%
Estimated from 1,438 samples; phase durations are exact. Frames from pytest and pluggy are
hidden
.
Hot lines in your code
|
apps/projects/management/commands/seed_demo.py:83
document = copy.deepcopy(template)
variant
· Deep copies
|
265 ms |
|
apps/projects/profiles.py:111
return gzip.compress(data, compresslevel=6)
compress
· Libraries
|
193 ms |
|
apps/projects/management/commands/seed_demo.py:248
test, _ = Test.objects.get_or_create(
Command.ingest_session
· Database
|
123 ms |
|
apps/projects/models.py:466
super().save(*args, **kwargs)
Profile.save
· Database
|
97 ms |
|
apps/projects/profiles.py:334
cursor.executemany(SNAPSHOT_UPSERT, batch)
write_snapshots
· Database
|
83 ms |
|
apps/projects/profiles.py:479
TestPerf.objects.bulk_create(
write_perfs
· Database
|
54 ms |
|
apps/projects/profiles.py:327
compress(json.dumps(snapshot_document(document, entry), separators=(",", ":")).encode()),
write_snapshots.<locals>.row
· Serialization
|
48 ms |
|
apps/projects/profiles.py:118
document = json.loads(data)
loads
· Serialization
|
44 ms |
|
apps/projects/testing.py:370
data = json.dumps(document).encode()
store_profile
· Serialization
|
36 ms |
|
apps/projects/testing.py:375
profile.refresh_from_db()
store_profile
· Database
|
32 ms |
Fixtures
Exact setup time| _unittest_setUpClass_fixture_SeedDemoCommandTest class | 9 ms |
| _django_setup_unittest class | 0.27 ms |
| _django_db_marker function | 0.05 ms |
| _django_set_urlconf function | 0.04 ms |
| _dj_autoclear_mailbox function | 0.04 ms |
| _live_server_helper function | 0.04 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.02 ms |
| monkeypatch function | 0.02 ms |
Database
1322 queries · 653 ms
Repeated queries are usually N+1 lookups: fetch them once with select_related / prefetch_related (or selectinload).
180×
SELECT "projects_test"."id", "projects_test"."name", "projects_test"."project_id", "projects_test"."slug", "projects_test"."date_last_run", "projects_test"."date_first_seen", "projects_test"."first_commit_id", "projects_test"."muted" FROM "projects_test" WHERE ("projects_test"."name" = %s AND "proj…
69×
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…
61×
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…
42×
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"."…
36×
SELECT "projects_test"."name" AS "name", "projects_test"."slug" AS "slug" FROM "projects_test" WHERE ("projects_test"."name" IN (…) AND "projects_test"."project_id" = %s)
Biggest pieces of work
|
call test body
apps/projects/tests.py:1145
|
1.85 s |
|
call _post_teardown
django/test/testcases.py:1240
|
36 ms |
|
setup setUpClass
django/test/testcases.py:1423
|
9 ms |
|
setup __init__
__init__:-1
|
0.87 ms |
|
teardown tearDownClass
django/test/testcases.py:1453
|
0.76 ms |
Reliability
12 results · 0 CI failures · 0 local failuresThis test hasn't failed recently.
History
Latest 12 results, oldest first in the strip| When | Environment | Outcome | Duration | |
|---|---|---|---|---|
| 16 hours ago | CI github-actions:test | passed | 1.90 s | Profile |
| 1 week, 5 days ago | CI github-actions:test | passed | 1.12 s | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 1.81 s | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 1.50 s | Profile |
| 2 weeks, 1 day ago | CI github-actions:test | passed | 2.06 s | Profile |
| 2 weeks, 2 days ago | CI github-actions:test | passed | 1.22 s | Profile |
| 2 weeks, 4 days ago | CI github-actions:test | passed | 2.03 s | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 1.91 s | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 1.88 s | Profile |
| 2 weeks, 6 days ago | CI github-actions:test | passed | 2.30 s | Profile |
| 3 weeks ago | CI github-actions:test | passed | 1.48 s | Profile |
| 3 weeks ago | CI github-actions:test | passed | 2.07 s | Profile |