使用URL和套接字下载之间的速度差异是多少?

时间:2013-12-20 00:59:19

标签: java performance sockets

我正在寻找创建一个Java应用程序,它将自动将播客下载到某人的计算机上。我想知道我是否应该与我的服务器建立Socket连接或只是使用URL类。

有没有人知道通过URL下载与套接字连接之间的速度差异。我知道URL对象部分构建在Socket对象之上,但我不确定运行时间的差异是什么。

1 个答案:

答案 0 :(得分:2)

使用现有的库支持。直接使用Socket执行此任务的唯一原因是连接到自定义协议(即 HTTP,没有合适的实现)。有这么多现有的传输协议 - 不要浪费时间为这种通用案例创建另一个传输协议。

HttpURLConnection最终使用“说”HTTP的TCP套接字实现。直接使用套接字需要编写代码来理解HTTP - 无论需要什么上下文。这段代码,即使比HttpUrlConnection“更有效”地完成,也只代表实际执行时间的小分数,这将由其他因素支配。

相反,请考虑如何在更高级别提高速度:

  • 同时下载多个远程资源
  • 使用HTTP管道(如果适用)
  • 启用HTTP压缩(如果适用)
  • 切换到为多文件同步设计的其他协议