java - 如何计算App Engine SDK本地测试环境中Datastore读/写的总数?

标签 java google-app-engine

我有一个 Google App Engine 应用程序,并且想将其当前设计与新设计的估计成本进行比较。基本上我想:

  1. 在本地 App Engine Java SDK 测试环境中运行我的代码库的两个版本,
  2. 从每个数据存储中捕获一些关键统计信息(主要是数据存储区读取和写入的数量),然后
  3. 编译并比较两组统计数据。

我知道“Appstats”工具,如果可能的话,使用它会很棒。然而,它有两个严重的缺点:

  1. Appstats 仅存储最近的 1,000 条记录,这对于我需要运行的测试操作的规模来说太小了。
  2. Appstats 提供 App Engine 的“估计成本”,而不是数据存储区读取和写入的精确数量。长话短说,了解读取和写入的确切总数对我很有用。

当我在 Java SDK 测试环境中本地运行应用程序时,我可以调出管理控制台的数据存储查看器,并查看数据存储中每个单独实体发生的写入操作的确切数量。惊人的!

不幸的是,我正在处理数万或数十万个实体,而数据存储查看器每个浏览器页面仅显示 10 个实体。 :( 因此,不需要编写一个黑客的屏幕抓取解决方案...我需要对数据存储查看器用来显示这些数字的信息进行一些编程访问。假设这种编程访问完全可用,那么它还提供其他与数据存储相关的统计信息(例如读取)就太好了。

是否有任何此类对本地 SDK 环境元数据的编程访问可用?或者,是否有人有完全不同的方法来从本地测试运行中捕获此类统计数据?

最佳答案

数据存储

这实际上在逐个实体的基础上计算起来非常简单。

存储一条平均完全填充的记录,查看控制台并查看它执行了多少写入操作,这就是您可以做的所有操作来查看写入内容。

减少写入的唯一方法是将属性标记为“未索引”。通过这样做,我将几个实体的写入次数从 8 次减少到 2 次。

读取也很容易,只读取您需要的内容,并将您需要的内容多次放入 memcache 中,并且仅在您真正需要时才保留它。

图片

ImageService 提供图像,这些图像是免费的。

二进制文件/Blob

从云存储提供二进制文件,您只需支付存储费用,无需支付读/写费用或带宽费用。

关于java - 如何计算App Engine SDK本地测试环境中Datastore读/写的总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984275/

相关文章:

java - 如何最有效地计算俄罗斯方 block 堆栈的高度剖面?

java - 如何在Java中实现单个全局变量

java - 如何在firebase数据库中添加子项

python - 通过考虑时区来比较时间

android - Android 游戏的服务器

java - SwingWorker:CPU 使用率 100%!

java - H2数据库使用Spring-boot和spring security显示空白页面(在线尝试解决方案)

sql - 谷歌云 SQL 第二代 -> "Aborted connection"

Java Firebase 错误 "NoClassDefFoundError: org/apache/http/conn/ssl/StrictHostnameVerifier"

python - 导入错误 : No module named flask on google app engine