在 Java Google App Engine 中,您可以打开并发请求/线程安全模式:https://developers.google.com/appengine/docs/java/config/appconfig#Using_Concurrent_Requests
这样做的唯一原因是 Google 服务器需要启动更少的应用实例才能满足给定数量的请求,因此可能会为您节省资金。当然,这样做也意味着您必须编写线程安全代码。
所以有趣的问题是:这可以节省多少钱?有没有人尝试在某些基准配置/应用程序功能/负载下测量它?
最佳答案
这实际上取决于您的代码:
在单请求模式下,您可以轻松计算每秒的请求数:如果一个请求平均需要 100 毫秒才能完成,那么一个实例每秒将能够执行 10 个请求。
在并发请求模式下,这取决于两个因素:
A.您正在使用的实例类型 - 据我所知,它们都是相同的,您只是获得了不同数量的核心。更多核心意味着更高的并发性能。
B.请求正在执行的 CPU 密集型代码与 IO 密集型代码的比率。如果您的代码更多地受 IO 限制(= 等待数据存储或其他外部服务),那么 CPU 将能够并行运行更多代码。
在我的应用程序中,我看到基本实例上每个请求 200 毫秒的速度为 15-20 rps,因此我可以说单请求和多请求模式之间的系数约为 3-4。
关于java - Java Google App Engine 在线程安全模式下的效率提高了多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060549/