Yis*_*hai 5 java performance guice
这似乎是一个奇怪的问题(显而易见的答案是 Production,废话),但是如果您阅读 java 文档:
/**
* We want fast startup times at the expense of runtime performance and some up front error
* checking.
*/
DEVELOPMENT,
/**
* We want to catch errors as early as possible and take performance hits up front.
*/
PRODUCTION
Run Code Online (Sandbox Code Playgroud)
假设您对应用程序服务器进行无状态调用,初始接收方法(或其他方法)会在每次调用时创建新的注入器。如果在给定的调用中不需要所有模块绑定,那么使用 Development 阶段(这是默认值)而不是预先考虑性能似乎会更好,因为您可能永远不会接受它,这里“前期”和“运行时性能”之间的区别有点没有实际意义,因为它是一个调用。
当然,这样做的缺点似乎是您将丢失错误检查,从而导致潜在的代码路径出人意料地引起问题。
所以问题归结为上述假设是否正确?当注入器的给定生命周期是一次调用时,您会在大量模块上节省性能吗?
不需要为每个请求创建一个注入器。这并不是 Guice 真正的用途——每个应用程序只需要一个注入器。注入器实际上代表了应用程序的配置或连接,而不是短暂的状态。
我怀疑你需要考虑使用Guice Scopes。
GuiceServlet为您提供了@RequestScoped允许您将对象的生命周期限制为 HTTP 请求的功能,这听起来像您想要做的。
如果您不在 Servlet 中,您始终可以定义自己的自定义范围。这不是很复杂。
| 归档时间: |
|
| 查看次数: |
3505 次 |
| 最近记录: |