---
title: "性能与组合"
description: "监控会话解析时间，启用会话缓存，连接独立的 Nitro 钩子，并与 AI SDK 集成结合使用。"
canonical_url: "https://evlog.zhcndoc.com/use-cases/better-auth/performance"
---
# 性能与组合

> 监控会话解析时间，启用会话缓存，连接独立的 Nitro 钩子，并与 AI SDK 集成结合使用。

`getSession()` 每次请求都会产生一次数据库查询。该集成会为你测量这一过程，并将耗时暴露为 `auth.resolvedIn`，这样你就能在用户察觉之前发现性能回归。

## 监控会话解析时间

```json [宽事件 — 会话解析缓慢]
{
  "auth": { "resolvedIn": 245, "identified": true },
  "duration": "312ms"
}
```

当 `auth.resolvedIn` 相对于 `duration` 较高时，说明你的认证后端是性能瓶颈。

## 针对高流量进行调优

1. 在 Better Auth 中**启用 cookie 缓存**，这样会话查找就不会每次都访问数据库。
2. 在 `createAuthMiddleware` 上使用 **exclude**，跳过不需要用户上下文的公开路由。
3. 使用 **include** 将解析范围限制到特定的路由模式，而不是整个应用。

缓存后的常见 P95 目标：`auth.resolvedIn < 5ms`。

## 独立 Nitro

`createAuthIdentifier` 是一个工厂函数，用于创建 Nitro 的 `request` 钩子。它专为 **独立 Nitro** 应用设计，其中 evlog Nitro 模块负责处理钩子顺序。

<note>

对于 **Nuxt**，请改为在服务器中间件中使用 `createAuthMiddleware`，因为 Nitro 插件钩子顺序可能导致 logger 在 `request` 钩子中尚不可用。

</note>

```typescript [server/plugins/evlog-auth.ts]
import { createAuthIdentifier } from 'evlog/better-auth'
import { auth } from './lib/auth'

export default defineNitroPlugin((nitroApp) => {
  nitroApp.hooks.hook('request', createAuthIdentifier(auth, {
    exclude: ['/api/auth/**', '/api/public/**'],
  }))
})
```

它接受与 [`createAuthMiddleware`](https://evlog.zhcndoc.com/use-cases/better-auth/middleware#options) 相同的选项。

## 与 AI SDK 结合使用

当你也使用 [`evlog/ai`](https://evlog.zhcndoc.com/use-cases/ai-sdk/overview) 时，你的宽事件会将用户身份 **和** AI 指标合并到同一个事件中：

```json [宽事件 — AI + 用户]
{
  "method": "POST",
  "path": "/api/chat",
  "status": 200,
  "duration": "4.5s",
  "durationMs": 4512,
  "userId": "QBX9tPjJQExWawAbNll75",
  "user": {
    "id": "QBX9tPjJQExWawAbNll75",
    "name": "Hugo Richard",
    "email": "hugo@example.com"
  },
  "auth": { "resolvedIn": 8, "identified": true },
  "ai": {
    "calls": 1,
    "model": "claude-sonnet-4.6",
    "provider": "anthropic",
    "inputTokens": 3312,
    "outputTokens": 814,
    "totalTokens": 4126,
    "msToFirstChunk": 234,
    "msToFinish": 4500,
    "tokensPerSecond": 180
  }
}
```

这就是宽事件带来的好处：每个请求对应一个事件，所有上下文集中在同一个地方：是谁发起了请求、他们做了什么、AI 如何响应，以及其性能表现如何。

---

- [中间件](https://evlog.zhcndoc.com/use-cases/better-auth/middleware)
- [AI SDK](https://evlog.zhcndoc.com/use-cases/ai-sdk/overview)


## Sitemap

See the full [sitemap](https://evlog.zhcndoc.com/sitemap.md) for all pages.
