gpt4 book ai didi

java - Google App Engine 有多快?

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:06 24 4
gpt4 key购买 nike

过去 2 个月我一直在试验 GAE。

我通过上传 CSV 文件将记录保存到 bigtable。

我的测试文件大小是 300 KB。

这是我发现的

本地系统

  • 上传时间不到 1 秒
  • 在 3 秒内处理 2500 条记录

在 Google 沙盒上

  • 上传需要 5-7 秒。

  • 处理文件超时。

  • 它只保存 60-180 条记录。

我的问题是

  1. 为什么要花太多时间?
  2. 有没有办法缩短这个时间?
  3. Google 将此处理计入 CPU 使用。他们不公开硬件,所以他们内部使用什么 CPU?我的意思是我得到的 CPU 是否相当于或大于 PIII?

针对 @Drew Sears 的回答进行了编辑。

我现在在做什么

  1. 上传文件到GAE
  2. 获取上传的数据字节。按流统计行数,存入bigtable。
  3. 有一个唯一的字段,id,我的记录。
  4. 现在,我创建队列

int x = linesCount/50;

for(int i<0;i=x;i++)
{
x = i * 50;
Queue queue = QueueFactory.getQueue("test-queue");
queue.add(TaskOptions.Builder.url("/TestQueue")
.param("id", id.toString())
.param("startIdx",String.valueOf(x))
.param("totRec",String.valueOf(50))
);
}

int y = linesCount % 50;
if( y > 0 )
{
x = (linesCount / 50) * 50;
Queue queue = QueueFactory.getQueue("test-queue");
queue.add(TaskOptions.Builder.url("/TestQueue")
.param("id", id.toString())
.param("startIdx",String.valueOf(x))
.param("totRec",String.valueOf(y))
);
}

任务处理 servlet 从存储中读取文件并使用 totRec 和 startIdx 处理文件并关闭它..

最佳答案

这确实不是测试 App Engine 可扩展性的好方法。

  1. 如果您需要 7 秒来发布 300KB,瓶颈几乎可以肯定是您的上游带宽,而不是 Google 的下游带宽,或者与 App Engine 相关的任何事情。我通常会获得更快的上传速度。
  2. 如果您希望请求更快地完成,请尽量减少 RPC 调用。每个数据存储获取、放置或查询都是到外部服务器的往返。如果您在数百行上循环并在每次循环迭代中执行 put,您将招致大量不必要的开销。使用一个数据存储区保存所有实体,您将更快地获得结果。圭多的AppStats framework是寻找 RPC 优化机会的绝佳工具。

关于java - Google App Engine 有多快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3211916/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com