在 Raspberry Pi 3 中使用 Java 下载速度非常慢
Very slow download speed using Java in Raspberry Pi 3
我在 Java 中编写了以下代码,用于在 Raspberry Pi 3 中下载文件:
String fileUrl = "...";
URL urlObj = new URL(fileUrl);
HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
InputStream in = con.getInputStream();
byte[] buffer = new byte[8*1024];
long t = System.nanoTime();
int read;
while ((read = in.read(buffer)) != -1) {
System.out.println("Read " + read + "B in " + (System.nanoTime() - t)/1000000.0 + " ms");
t = System.nanoTime();
}
尽管我使用的是 8 KB 缓冲区,但平均下载速度为 1389 B(约 205 毫秒),相当于 6.78 KB/s:
Download speed measurements
我还注意到执行此代码时 CPU 使用率始终为 25%。由于 RPi 的 CPU 有 4 个核心,我假设它使用 100% 的单核。我知道这是一个弱处理器,但下载文件不是一项艰巨的任务,所以这种奇怪的行为让我感到困惑。
我终于解决了问题!
我删除了 OpenJDK 并安装了 Oracle JDK:
sudo apt-get purge openjdk-8-jdk
sudo apt-get purge openjdk-8-jre
sudo apt-get autoremove
sudo apt-get install oracle-java8-jdk
如果正确安装了 Oracle 的 JDK,运行 java -version
应该是这样的:
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
有了这个,下载速度从大约 5 KB/s 提高到大约 450 KB/s,这是我 4 Mbps 连接的预期。
我出于好奇重新安装了 OpenJDK,但下载速度又变慢了,所以这个 jdk 就是问题所在,正如 Erich Kitzmueller 和 pvg 所建议的。
感谢大家的建议!
我在 Java 中编写了以下代码,用于在 Raspberry Pi 3 中下载文件:
String fileUrl = "...";
URL urlObj = new URL(fileUrl);
HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
InputStream in = con.getInputStream();
byte[] buffer = new byte[8*1024];
long t = System.nanoTime();
int read;
while ((read = in.read(buffer)) != -1) {
System.out.println("Read " + read + "B in " + (System.nanoTime() - t)/1000000.0 + " ms");
t = System.nanoTime();
}
尽管我使用的是 8 KB 缓冲区,但平均下载速度为 1389 B(约 205 毫秒),相当于 6.78 KB/s:
Download speed measurements
我还注意到执行此代码时 CPU 使用率始终为 25%。由于 RPi 的 CPU 有 4 个核心,我假设它使用 100% 的单核。我知道这是一个弱处理器,但下载文件不是一项艰巨的任务,所以这种奇怪的行为让我感到困惑。
我终于解决了问题!
我删除了 OpenJDK 并安装了 Oracle JDK:
sudo apt-get purge openjdk-8-jdk
sudo apt-get purge openjdk-8-jre
sudo apt-get autoremove
sudo apt-get install oracle-java8-jdk
如果正确安装了 Oracle 的 JDK,运行 java -version
应该是这样的:
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
有了这个,下载速度从大约 5 KB/s 提高到大约 450 KB/s,这是我 4 Mbps 连接的预期。
我出于好奇重新安装了 OpenJDK,但下载速度又变慢了,所以这个 jdk 就是问题所在,正如 Erich Kitzmueller 和 pvg 所建议的。
感谢大家的建议!