这看起来是如此基本,以至于人们会尖叫它,在网上搜索没有找到任何东西,但我已经在几个网络和计算机上测试了它。我们在使用.local url访问资源时遇到了一个问题,它非常慢。如果我们使用直接IP地址,我们不会看到这些延迟。
在我们的精简测试设置中,设备和计算机位于同一交换机上,并且是交换机上的唯一设备。当我们不在这种非常有限的网络配置中时,同样的事情也会发生。Mac OS X Lion在命令行中,我们将获得以下结果:
有专线ip:
curl 10.101.62.42 0.01s user 0.00s system 18% cpu 0.059 total
使用bonjour名字:
curl http://xrx0000aac0fefd.local 0.01s user 0.00s system 0% cpu 5.063 total
每次请求解析的时间始终在5秒以上。我们尝试连接哪个设备并不重要,在我们的iPhone应用程序中似乎也发生了同样的事情,而且Python脚本的速度很慢。Safari似乎能够快速解析这些名称。
我们可以解析一次,然后使用IP地址,但是第一个请求仍然是不可接受的慢,我不认为这是Bonjour应该工作的方式。
我们不能确切地确定这是什么时候开始发生的,但并不总是这样。
编辑:另一个数据点。在Snow Leopard上,它的解析速度并不慢:
$ time curl http://hp1320.local > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
101 2848 0 2848 0 0 15473 0 --:--:-- --:--:-- --:--:-- 36512
real 0m0.201s
user 0m0.005s
sys 0m0.009s
发布于 2011-10-14 04:32:51
在iOS 5和Lion 10.7.2中解决了这个问题。这是一个巨大的解脱。不幸的是,4.3应用程序用户将得到这种缓慢的行为。我猜这是升级的另一个原因。
发布于 2011-08-26 23:57:53
当你浏览时,你提到的主机会出现吗?枚举应该很快:
mdns -B _http._tcp
也许有什么东西减慢了名字解析。如果你用dig
查询If地址,它很快就会返回正确的地址:
dig A xrx0000aac0fefd.local @224.0.0.251 -p 5353
如果失败,请尝试运行tcpdump
,查看是否有设备在网络上发出多播数据包。
https://stackoverflow.com/questions/7115519
复制相似问题