Performance: Why dependency injection matters
Dependency injection affects how efficiently components are created and reused, impacting server response time and memory usage.
Jump into concepts and practice - no test required
from fastapi import Depends def get_db(): db = DatabaseConnection() try: yield db finally: db.close() def get_user(db: DatabaseConnection = Depends(get_db)): return db.query_user()
def get_user(): db = DatabaseConnection() user = db.query_user() db.close() return user
| Pattern | Object Creation | Resource Usage | Response Time Impact | Verdict |
|---|---|---|---|---|
| No Dependency Injection | Creates new objects per request | High due to repeated setup | Slower responses | [X] Bad |
| With Dependency Injection | Reuses objects when possible | Lower resource usage | Faster responses | [OK] Good |
from fastapi import FastAPI, Depends
app = FastAPI()
def get_number():
return 42
@app.get("/number")
def read_number(num: int = Depends(get_number)):
print(f"Number is {num}")
return {"number": num}def get_db():
return "db_connection"
@app.get("/items")
def read_items(db = get_db()):
return {"db": db}