InvokeAI/invokeai/app/services/invocation_processor
psychedelicious 4602efd598
feat: add profiler util (#5601)
* feat(config): add profiling config settings

- `profile_graphs` enables graph profiling with cProfile
- `profiles_dir` sets the output for profiles

* feat(nodes): add Profiler util

Simple wrapper around cProfile.

* feat(nodes): use Profiler in invocation processor

* scripts: add generate_profile_graphs.sh script

Helper to generate graphs for profiles.

* pkg: add snakeviz and gprof2dot to dev deps

These are useful for profiling.

* tests: add tests for profiler util

* fix(profiler): handle previous profile not stopped cleanly

* feat(profiler): add profile_prefix config setting

The prefix is used when writing profile output files. Useful to organise profiles into sessions.

* tidy(profiler): add `_` to private API

* feat(profiler): simplify API

* feat(profiler): use child logger for profiler logs

* chore(profiler): update docstrings

* feat(profiler): stop() returns output path

* chore(profiler): fix docstring

* tests(profiler): update tests

* chore: ruff
2024-01-31 10:51:57 +00:00
..
__init__.py feat: refactor services folder/module structure 2023-10-12 12:15:06 -04:00
invocation_processor_base.py chore: ruff format 2023-11-11 10:55:40 +11:00
invocation_processor_common.py feat: refactor services folder/module structure 2023-10-12 12:15:06 -04:00
invocation_processor_default.py feat: add profiler util (#5601) 2024-01-31 10:51:57 +00:00