有没有更快的方法来初始化 BigQuery 客户端?

Is there a quicker way to initialise a BigQuery client?

使用 Quickstart: Using Client Libraries google 文档中推荐的方法初始化 BigQuery 客户端需要 15 秒才能完成。这看起来很慢 - 有没有更快的方法?

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryOptions;

public class Test {

  public static void main(String... args) throws Exception {

    long nanotime = System.nanoTime();
    BigQueryOptions x = BigQueryOptions.getDefaultInstance();
    System.out.println("getDefaultInstance " +
                                  (System.nanoTime()-nanotime));
    nanotime = System.nanoTime();
    BigQuery bigquery = x.getService();
    System.out.println("getService " + (System.nanoTime()-nanotime));
  }
}

输出:

getDefaultInstance 15453574055
getService 34049521
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 16.021s
Finished at: Tue Mar 19 14:23:54 GMT 2019
Final Memory: 7M/178M
------------------------------------------------------------------------

这很奇怪。我可以 运行 在我这边使用相同的代码,而且初始化花费的时间不到 200ms。我 运行 在 n1-standard-4 VM 中使用代码并为 java 使用以下版本:

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
BigQuery 客户端的

1.62 版本:

<dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-bigquery</artifactId>
      <version>1.62.0</version>
</dependency>

这个问题在某种程度上与虚拟机上的网络配置有关。将网络设置从 "Share with my Mac" 更改为 "Bridged Networking" 解决了这个问题(见下图)。现在需要 0.6 秒来初始化。