f7d2f63ab8
CI / lint (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 28s
CI / security (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 15s
CI / integration_tests (pull_request) Successful in 5m11s
CI / build (pull_request) Successful in 16s
CI / unit_tests (pull_request) Successful in 14m31s
CI / docker (pull_request) Successful in 40s
CI / coverage (pull_request) Successful in 8m18s
CI / lint (push) Successful in 13s
CI / typecheck (push) Successful in 28s
CI / security (push) Successful in 23s
CI / quality (push) Successful in 16s
CI / integration_tests (push) Successful in 4m58s
CI / build (push) Successful in 15s
CI / unit_tests (push) Successful in 15m30s
CI / coverage (push) Has been cancelled
CI / docker (push) Has been cancelled
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
"""ASV benchmarks for ResourceRegistryService operations."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from sqlalchemy import create_engine
|
|
from sqlalchemy.orm import sessionmaker
|
|
|
|
from cleveragents.application.services.resource_registry_service import (
|
|
ResourceRegistryService,
|
|
)
|
|
from cleveragents.infrastructure.database.models import Base
|
|
|
|
|
|
class BootstrapBenchmark:
|
|
"""Benchmark built-in type bootstrap."""
|
|
|
|
timeout = 30.0
|
|
|
|
def setup(self) -> None:
|
|
self.engine = create_engine("sqlite:///:memory:")
|
|
Base.metadata.create_all(self.engine)
|
|
self.factory = sessionmaker(bind=self.engine)
|
|
|
|
def time_bootstrap_builtin_types(self) -> None:
|
|
svc = ResourceRegistryService(session_factory=self.factory)
|
|
svc.bootstrap_builtin_types()
|
|
|
|
def time_bootstrap_idempotent(self) -> None:
|
|
svc = ResourceRegistryService(session_factory=self.factory)
|
|
svc.bootstrap_builtin_types()
|
|
svc.bootstrap_builtin_types()
|
|
|
|
|
|
class ListTypesBenchmark:
|
|
"""Benchmark type listing operations."""
|
|
|
|
timeout = 30.0
|
|
|
|
def setup(self) -> None:
|
|
self.engine = create_engine("sqlite:///:memory:")
|
|
Base.metadata.create_all(self.engine)
|
|
self.factory = sessionmaker(bind=self.engine)
|
|
svc = ResourceRegistryService(session_factory=self.factory)
|
|
svc.bootstrap_builtin_types()
|
|
self.svc = svc
|
|
|
|
def time_list_all_types(self) -> None:
|
|
self.svc.list_types()
|
|
|
|
def time_show_type(self) -> None:
|
|
self.svc.show_type("git-checkout")
|
|
|
|
|
|
class RegisterResourceBenchmark:
|
|
"""Benchmark resource registration."""
|
|
|
|
timeout = 30.0
|
|
|
|
def setup(self) -> None:
|
|
self.engine = create_engine("sqlite:///:memory:")
|
|
Base.metadata.create_all(self.engine)
|
|
self.factory = sessionmaker(bind=self.engine)
|
|
svc = ResourceRegistryService(session_factory=self.factory)
|
|
svc.bootstrap_builtin_types()
|
|
self.svc = svc
|
|
self.counter = 0
|
|
|
|
def time_register_resource(self) -> None:
|
|
self.counter += 1
|
|
self.svc.register_resource(
|
|
type_name="git-checkout",
|
|
name=f"local/bench-repo-{self.counter}",
|
|
location="/tmp/bench",
|
|
)
|