java - Java Google App Engine 在线程安全模式下的效率提高了多少?

标签 java google-app-engine

在 Java Google App Engine 中,您可以打开并发请求/线程安全模式:https://developers.google.com/appengine/docs/java/config/appconfig#Using_Concurrent_Requests

这样做的唯一原因是 Google 服务器需要启动更少的应用实例才能满足给定数量的请求,因此可能会为您节省资金。当然,这样做也意味着您必须编写线程安全代码。

所以有趣的问题是:这可以节省多少钱?有没有人尝试在某些基准配置/应用程序功能/负载下测量它?

最佳答案

这实际上取决于您的代码:

  1. 在单请求模式下,您可以轻松计算每秒的请求数:如果一个请求平均需要 100 毫秒才能完成,那么一个实例每秒将能够执行 10 个请求。

  2. 在并发请求模式下,这取决于两个因素:

    A.您正在使用的实例类型 - 据我所知,它们都是相同的,您只是获得了不同数量的核心。更多核心意味着更高的并发性能。

    B.请求正在执行的 CPU 密集型代码与 IO 密集型代码的比率。如果您的代码更多地受 IO 限制(= 等待数据存储或其他外部服务),那么 CPU 将能够并行运行更多代码。

在我的应用程序中,我看到基本实例上每个请求 200 毫秒的速度为 15-20 rps,因此我可以说单请求和多请求模式之间的系数约为 3-4。

关于java - Java Google App Engine 在线程安全模式下的效率提高了多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060549/

相关文章:

java - JPA/Hibernate - 防止在 PreRemove 处理程序中删除?

java - 如何将文本框值放入数组并在java中转换为整数

java - JDBC Realm 表单例份验证如何

python - 用于在没有 Google Driver UI 的情况下将大文件上传到 Google Drive 的 POST 消息

java - Google App Engine - 每当我对 servlet 进行更改时,我都必须重新启动开发服务器

java - 未按预期评估 Maven 属性(os-maven-plugin)

java - 需要有关 java 中 ExecutorService 的建议

java - 应用引擎/Java : delete items retrieved from checkboxes

python - 使用什么 Google 应用引擎身份验证仅向我的 GSuite 用户公开我的 "intranet"网站?

ajax - 如何向应用引擎中部署的谷歌分析 super 代理发出 CORS 请求?