CI
github-actions:test
5 runs
Average
43 ms
median 44 ms
max 57 ms
max 57 ms
Phases
Setup 0.71 ms
Call 42 ms
Teardown 0.17 ms
Categories
Database 13 ms
App code 0.48 ms
Other (Libraries, Unsampled) 30 ms
10 database queries per run
Needs 0 KB of memory (max 0 KB)
Duration per run
Where the time goes
Latest run in ci:github-actions:test, an hour ago ·
open run
call43 ms97.8%
CallInfo.from_call_pytest/runner.py:35343 ms97.8%
call_and_report.<locals>.<lambda>_pytest/runner.py:24543 ms97.8%
HookCaller.__call__pluggy/_hooks.py:51243 ms97.8%
PluginManager._hookexecpluggy/_manager.py:12043 ms97.8%
_multicallpluggy/_callers.py:12143 ms97.8%
pytest_runtest_call_pytest/runner.py:17943 ms97.8%
_django_setup_unittest.<locals>.non_debugging_runtestpytest_django/plugin.py:57343 ms97.8%
SimpleTestCase.__call__django/test/testcases.py:31343 ms97.8%
SimpleTestCase._setup_and_calldjango/test/testcases.py:36839 ms86.9%
TestCase.__call__<stdlib>/unittest/case.py:74739 ms86.9%
TestCase.run<stdlib>/unittest/case.py:69139 ms86.9%
TestCase._callTestMethod<stdlib>/unittest/case.py:63739 ms86.9%
McpTest.test_list_memory_testsapps/mcp/tests.py:204 result = self.call("list_memory_tests", limit=5)39 ms86.9%
McpTest.callapps/mcp/tests.py:8139 ms86.9%
McpTest.rpcapps/mcp/tests.py:7439 ms86.9%
McpTest.postapps/mcp/tests.py:66 return self.client.post(39 ms86.9%
Client.postdjango/test/client.py:115339 ms86.9%
RequestFactory.postdjango/test/client.py:49939 ms86.9%
RequestFactory.genericdjango/test/client.py:67139 ms86.9%
Client.requestdjango/test/client.py:108239 ms86.9%
ClientHandler.__call__django/test/client.py:17324 ms54.3%
BaseHandler.load_middlewaredjango/core/handlers/base.py:6224 ms54.3%
WhiteNoiseMiddleware.__init__whitenoise/middleware.py:10424 ms54.3%
WhiteNoise.add_fileswhitenoise/base.py:10824 ms54.3%
WhiteNoise.update_files_dictionarywhitenoise/base.py:12019 ms43.5%
WhiteNoise.add_file_to_dictionarywhitenoise/base.py:13117 ms38.0%
WhiteNoise.get_static_filewhitenoise/base.py:20810 ms21.7%
StaticFile.__init__whitenoise/responders.py:775 ms10.9%
StaticFile.get_alternativeswhitenoise/responders.py:2002 ms5.4%
StaticFile.get_alternativeswhitenoise/responders.py:2012 ms5.4%
StaticFile.__init__whitenoise/responders.py:722 ms5.4%
StaticFile.get_file_statswhitenoise/responders.py:1612 ms5.4%
__init____init__:-12 ms5.4%
FileEntry.__init__whitenoise/responders.py:2632 ms5.4%
FileEntry.stat_regular_filewhitenoise/responders.py:2762 ms5.4%
<GC>~2 ms5.4%
StaticFile.__init__whitenoise/responders.py:762 ms5.4%
StaticFile.get_not_modified_responsewhitenoise/responders.py:1892 ms5.4%
Headers.__getitem__<stdlib>/wsgiref/headers.py:832 ms5.4%
Headers.get<stdlib>/wsgiref/headers.py:1042 ms5.4%
WhiteNoise.get_static_filewhitenoise/base.py:2037 ms16.3%
WhiteNoise.add_cache_headerswhitenoise/base.py:2247 ms16.3%
WhiteNoiseMiddleware.immutable_file_testwhitenoise/middleware.py:1767 ms16.3%
WhiteNoiseMiddleware.get_static_urlwhitenoise/middleware.py:1975 ms10.9%
URLMixin.urldebug_toolbar/panels/staticfiles.py:205 ms10.9%
WhiteNoise.update_files_dictionarywhitenoise/base.py:1155 ms10.9%
scantreewhitenoise/base.py:2625 ms10.9%
scantreewhitenoise/base.py:2625 ms10.9%
scantreewhitenoise/base.py:2622 ms5.4%
scantreewhitenoise/base.py:2622 ms5.4%
scantreewhitenoise/base.py:2622 ms5.4%
scantreewhitenoise/base.py:2642 ms5.4%
scantreewhitenoise/base.py:2602 ms5.4%
ClientHandler.__call__django/test/client.py:18614 ms32.6%
BaseHandler.get_responsedjango/core/handlers/base.py:14114 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
DebugToolbarMiddleware.__call__debug_toolbar/middleware.py:13014 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
WhiteNoiseMiddleware.__call__whitenoise/middleware.py:12314 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
MiddlewareMixin.__call__django/utils/deprecation.py:30914 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
AccountMiddleware.<locals>.middlewareallauth/account/middleware.py:3414 ms32.6%
convert_exception_to_response.<locals>.innerdjango/core/handlers/exception.py:5514 ms32.6%
BaseHandler._get_responsedjango/core/handlers/base.py:19814 ms32.6%
csrf_exempt.<locals>._view_wrapperdjango/views/decorators/csrf.py:6514 ms32.6%
mcpapps/mcp/urls.py:14710 ms21.7%
handleapps/mcp/urls.py:11510 ms21.7%
call_toolapps/mcp/urls.py:7510 ms21.7%
Tools.callapps/mcp/tools.py:18110 ms21.7%
Tools.list_memory_testsapps/mcp/tools.py:2627 ms16.3%
memory_testsapps/projects/analytics.py:504 rows = list(5 ms10.9%
QuerySet.__iter__django/db/models/query.py:3905 ms10.9%
QuerySet._fetch_alldjango/db/models/query.py:20005 ms10.9%
ValuesIterable.__iter__django/db/models/query.py:2225 ms10.9%
SQLCompiler.results_iterdjango/db/models/sql/compiler.py:15735 ms10.9%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16112 ms5.4%
SQLCompiler.as_sqldjango/db/models/sql/compiler.py:7672 ms5.4%
SQLCompiler.pre_sql_setupdjango/db/models/sql/compiler.py:872 ms5.4%
SQLCompiler.get_order_bydjango/db/models/sql/compiler.py:4912 ms5.4%
SQLCompiler._order_by_pairsdjango/db/models/sql/compiler.py:3622 ms5.4%
Expression.__hash__django/db/models/expressions.py:5622 ms5.4%
cached_property.__get__django/utils/functional.py:472 ms5.4%
Expression.identitydjango/db/models/expressions.py:5522 ms5.4%
Expression._identitydjango/db/models/expressions.py:5322 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
memory_testsapps/projects/analytics.py:5012 ms5.4%
Scope.dailyapps/projects/analytics.py:170 return TestDailyStats.objects.filter(self.environment_q(), project=self.project, day__gte=self.since.date())2 ms5.4%
Tools.list_memory_testsapps/mcp/tools.py:2692 ms5.4%
Tools.urlapps/mcp/tools.py:1702 ms5.4%
Project.urlapps/projects/models.py:59 return reverse(name, args=[self.organization.slug, self.slug, *args])2 ms5.4%
ForwardManyToOneDescriptor.__get__django/db/models/fields/related_descriptors.py:2572 ms5.4%
ForwardManyToOneDescriptor.get_objectdjango/db/models/fields/related_descriptors.py:2222 ms5.4%
QuerySet.getdjango/db/models/query.py:6352 ms5.4%
QuerySet.__len__django/db/models/query.py:3722 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ModelIterable.__iter__django/db/models/query.py:952 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
mcpapps/mcp/urls.py:1255 ms10.9%
authenticateapps/mcp/urls.py:55 project = Project.objects.filter(secrettokens__token=token).first()5 ms10.9%
QuerySet.firstdjango/db/models/query.py:11455 ms10.9%
QuerySet.__iter__django/db/models/query.py:3902 ms5.4%
QuerySet._fetch_alldjango/db/models/query.py:20002 ms5.4%
ModelIterable.__iter__django/db/models/query.py:952 ms5.4%
SQLCompiler.execute_sqldjango/db/models/sql/compiler.py:16242 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1052 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
BaseCursor._execute_genpsycopg/_cursor_base.py:2062 ms5.4%
BaseCursor._maybe_prepare_genpsycopg/_cursor_base.py:3182 ms5.4%
BaseCursor._set_resultspsycopg/_cursor_base.py:5352 ms5.4%
SimpleTestCase._setup_and_calldjango/test/testcases.py:3715 ms10.9%
TransactionTestCase._post_teardowndjango/test/testcases.py:1240 self._fixture_teardown()5 ms10.9%
TestCase._fixture_teardowndjango/test/testcases.py:14955 ms10.9%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4832 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
DatabaseWrapper.check_constraintsdjango/db/backends/postgresql/base.py:4842 ms5.4%
CursorWrapper.executedjango/db/backends/utils.py:792 ms5.4%
CursorWrapper._execute_with_wrappersdjango/db/backends/utils.py:922 ms5.4%
QueryTracker._django_wrapperflakytest/profiling/dbtrack.py:1002 ms5.4%
CursorWrapper._executedjango/db/backends/utils.py:1032 ms5.4%
Cursor.executepsycopg/cursor.py:1132 ms5.4%
Connection.waitpsycopg/connection.py:4952 ms5.4%
Estimated from 18 samples; phase durations are exact. Frames from pytest and pluggy are
shown
.
Hot lines in your code
|
apps/mcp/tests.py:66
return self.client.post(
McpTest.post
· Libraries
|
24 ms |
|
apps/mcp/urls.py:55
project = Project.objects.filter(secrettokens__token=token).first()
authenticate
· Database
|
5 ms |
|
apps/projects/analytics.py:504
rows = list(
memory_tests
· Database
|
5 ms |
|
apps/projects/analytics.py:170
return TestDailyStats.objects.filter(self.environment_q(), project=self.project, day__gte=self.since.date())
Scope.daily
· App code
|
2 ms |
|
apps/projects/models.py:59
return reverse(name, args=[self.organization.slug, self.slug, *args])
Project.url
· Database
|
2 ms |
Fixtures
Exact setup time| _dj_autoclear_mailbox function | 0.05 ms |
| _live_server_helper function | 0.05 ms |
| _template_string_if_invalid_marker function | 0.04 ms |
| _django_set_urlconf function | 0.04 ms |
| _django_db_marker function | 0.04 ms |
| _django_clear_site_cache function | 0.03 ms |
| monkeypatch function | 0.02 ms |
Database
10 queries · 5 msNo repeated queries.
Biggest pieces of work
|
call test body
apps/mcp/tests.py:204
|
39 ms |
|
call _post_teardown
django/test/testcases.py:1240
|
5 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 | |
|---|---|---|---|---|
| an hour ago | CI github-actions:test | passed | 44 ms | Profile |
| an hour ago | CI github-actions:test | passed | 43 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 57 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 24 ms | Profile |
| 8 hours ago | CI github-actions:test | passed | 47 ms | Profile |