使用Java+;桑巴舞+;赢7
我发现,从Win7客户端通过SAMBA文件夹调用Java的使用Java+;桑巴舞+;赢7,java,performance,networking,samba,Java,Performance,Networking,Samba,我发现,从Win7客户端通过SAMBA文件夹调用Java的File.listFiles()非常慢,实际上比从Mac客户端调用要慢近100倍。(两个客户端都运行Java 7)。两个客户端自然都位于同一个1GB LAN上。一位客户已经从他的Win XP客户端进行了测试,获得的性能远远好于他的Win7客户端。有人知道如何解决这个问题吗 一些测试数据,包括计时: 清单31 SAMBA(“QNAP”NAS磁盘)上的文件夹: 赢7: listing \\nas\Public\David\Remote Sto
File.listFiles()
非常慢,实际上比从Mac客户端调用要慢近100倍。(两个客户端都运行Java 7)。两个客户端自然都位于同一个1GB LAN上。一位客户已经从他的Win XP客户端进行了测试,获得的性能远远好于他的Win7客户端。有人知道如何解决这个问题吗
一些测试数据,包括计时:
清单31 SAMBA(“QNAP”NAS磁盘)上的文件夹:
赢7:
listing \\nas\Public\David\Remote Stocks: 0.0s
listing \\nas\Public\David\Remote Stocks\Animals: 0.093s
listing \\nas\Public\David\Remote Stocks\Animals\.jalbum: 0.312s
listing \\nas\Public\David\Remote Stocks\Animals\.jalbum\thumbs: 0.405s
listing \\nas\Public\David\Remote Stocks\album: 1.248s
listing \\nas\Public\David\Remote Stocks\album\Animals: 1.31s
listing \\nas\Public\David\Remote Stocks\album\Animals\thumbs: 1.388s
listing \\nas\Public\David\Remote Stocks\album\Animals\slides: 1.762s
listing \\nas\Public\David\Remote Stocks\album\Animals\res: 2.542s
listing \\nas\Public\David\Remote Stocks\album\Sports: 2.761s
listing \\nas\Public\David\Remote Stocks\album\Sports\thumbs: 2.839s
listing \\nas\Public\David\Remote Stocks\album\Sports\slides: 3.229s
listing \\nas\Public\David\Remote Stocks\album\Sports\res: 3.978s
listing \\nas\Public\David\Remote Stocks\album\res: 4.196s
listing \\nas\Public\David\Remote Stocks\album\Scenic: 4.695s
listing \\nas\Public\David\Remote Stocks\album\Scenic\thumbs: 4.773s
listing \\nas\Public\David\Remote Stocks\album\Scenic\slides: 5.194s
listing \\nas\Public\David\Remote Stocks\album\Scenic\res: 5.99s
listing \\nas\Public\David\Remote Stocks\album\People: 6.208s
listing \\nas\Public\David\Remote Stocks\album\People\thumbs: 6.302s
listing \\nas\Public\David\Remote Stocks\album\People\slides: 6.692s
listing \\nas\Public\David\Remote Stocks\album\People\res: 7.472s
listing \\nas\Public\David\Remote Stocks\.jalbum: 7.659s
listing \\nas\Public\David\Remote Stocks\Sports: 7.768s
listing \\nas\Public\David\Remote Stocks\Sports\.jalbum: 7.909s
listing \\nas\Public\David\Remote Stocks\Sports\.jalbum\thumbs: 7.987s
listing \\nas\Public\David\Remote Stocks\Scenic: 8.486s
listing \\nas\Public\David\Remote Stocks\Scenic\.jalbum: 8.642s
listing \\nas\Public\David\Remote Stocks\Scenic\.jalbum\thumbs: 8.72s
listing \\nas\Public\David\Remote Stocks\People: 9.282s
listing \\nas\Public\David\Remote Stocks\People\.jalbum: 9.422s
清单\\nas\Public\David\Remote Stocks:0.0s
列表\\nas\Public\David\Remote Stocks\Animals:0.093s
列表\\nas\Public\David\Remote Stocks\Animals\.jalbum:0.312s
列表\\nas\Public\David\Remote Stocks\Animals\.jalbum\thumbs:0.405s
列表\\nas\Public\David\Remote Stocks\album:1.248s
列表\\nas\Public\David\Remote Stocks\album\Animals:1.31s
列表\\nas\Public\David\Remote Stocks\album\anies\thumbs:1.388s
列表\\nas\Public\David\Remote Stocks\album\anies\slides:1.762s
列表\\nas\Public\David\Remote Stocks\album\anies\res:2.542s
列表\\nas\Public\David\Remote Stocks\album\Sports:2.761s
列表\\nas\Public\David\Remote Stocks\album\Sports\thumbs:2.839s
列表\\nas\Public\David\Remote Stocks\album\Sports\slides:3.229s
列表\\nas\Public\David\Remote Stocks\album\Sports\res:3.978s
清单\\nas\Public\David\Remote Stocks\album\res:4.196s
列表\\nas\Public\David\Remote Stocks\album\scenent:4.695s
列表\\nas\Public\David\Remote Stocks\album\scenent\thumbs:4.773s
列表\\nas\Public\David\Remote Stocks\album\scene\slides:5.194s
列表\\nas\Public\David\Remote Stocks\album\scenet\res:5.99s
列表\\nas\Public\David\Remote Stocks\album\People:6.208s
列表\\nas\Public\David\Remote Stocks\album\People\thumbs:6.302s
列表\\nas\Public\David\Remote Stocks\album\People\slides:6.692s
列表\\nas\Public\David\Remote Stocks\album\People\res:7.472s
清单\\nas\Public\David\Remote Stocks\.jalbum:7.659s
清单\\nas\Public\David\Remote Stocks\Sports:7.768s
列表\\nas\Public\David\Remote Stocks\Sports\.jalbum:7.909s
列表\\nas\Public\David\Remote Stocks\Sports\.jalbum\thumbs:7.987s
列表\\nas\Public\David\Remote Stocks\scenent:8.486s
列表\\nas\Public\David\Remote Stocks\scenent\.jalbum:8.642s
列表\\nas\Public\David\Remote Stocks\scenent\.jalbum\thumbs:8.72s
列表\\nas\Public\David\Remote Stocks\People:9.282s
列表\\nas\Public\David\Remote Stocks\People\.jalbum:9.422s
Mac上的相同列表:
listing /Volumes/Public/David/Remote Stocks: 0.0s
listing /Volumes/Public/David/Remote Stocks/Animals: 0.013s
listing /Volumes/Public/David/Remote Stocks/Animals/.jalbum: 0.018s
listing /Volumes/Public/David/Remote Stocks/Animals/.jalbum/thumbs: 0.022s
listing /Volumes/Public/David/Remote Stocks/album: 0.027s
listing /Volumes/Public/David/Remote Stocks/album/Animals: 0.03s
listing /Volumes/Public/David/Remote Stocks/album/Animals/thumbs: 0.032s
listing /Volumes/Public/David/Remote Stocks/album/Animals/slides: 0.034s
listing /Volumes/Public/David/Remote Stocks/album/Animals/res: 0.038s
listing /Volumes/Public/David/Remote Stocks/album/Sports: 0.04s
listing /Volumes/Public/David/Remote Stocks/album/Sports/thumbs: 0.042s
listing /Volumes/Public/David/Remote Stocks/album/Sports/slides: 0.046s
listing /Volumes/Public/David/Remote Stocks/album/Sports/res: 0.05s
listing /Volumes/Public/David/Remote Stocks/album/res: 0.052s
listing /Volumes/Public/David/Remote Stocks/album/Scenic: 0.058s
listing /Volumes/Public/David/Remote Stocks/album/Scenic/thumbs: 0.064s
listing /Volumes/Public/David/Remote Stocks/album/Scenic/slides: 0.068s
listing /Volumes/Public/David/Remote Stocks/album/Scenic/res: 0.074s
listing /Volumes/Public/David/Remote Stocks/album/People: 0.08s
listing /Volumes/Public/David/Remote Stocks/album/People/thumbs: 0.082s
listing /Volumes/Public/David/Remote Stocks/album/People/slides: 0.085s
listing /Volumes/Public/David/Remote Stocks/album/People/res: 0.089s
listing /Volumes/Public/David/Remote Stocks/.jalbum: 0.091s
listing /Volumes/Public/David/Remote Stocks/Sports: 0.103s
listing /Volumes/Public/David/Remote Stocks/Sports/.jalbum: 0.106s
listing /Volumes/Public/David/Remote Stocks/Sports/.jalbum/thumbs: 0.108s
listing /Volumes/Public/David/Remote Stocks/Scenic: 0.11s
listing /Volumes/Public/David/Remote Stocks/Scenic/.jalbum: 0.122s
listing /Volumes/Public/David/Remote Stocks/Scenic/.jalbum/thumbs: 0.124s
listing /Volumes/Public/David/Remote Stocks/People: 0.126s
listing /Volumes/Public/David/Remote Stocks/People/.jalbum: 0.133s
列表/卷/公共/大卫/远程股票:0.0s
列表/卷/公共/大卫/远程股票/动物:0.013s
listing/Volumes/Public/David/Remote Stocks/Animals/.jalbum:0.018s
listing/Volumes/Public/David/Remote Stocks/Animals/.jalbum/thumbs:0.022s
列表/卷/公共/大卫/远程股票/专辑:0.027s
列表/卷/公共/大卫/远程股票/专辑/动物:0.03s
列表/卷/公共/大卫/远程股票/专辑/动物/拇指:0.032s
列表/卷/公共/大卫/远程股票/专辑/动物/幻灯片:0.034s
列表/卷/公共/大卫/远程股票/专辑/动物/资源:0.038s
列表/卷/公共/大卫/远程股票/专辑/体育:0.04s
列表/卷/公共/大卫/远程股票/专辑/运动/拇指:0.042s
列表/卷/公共/大卫/远程股票/专辑/体育/幻灯片:0.046s
列表/卷/公共/大卫/远程股票/专辑/体育/资源:0.05s
列表/Volumes/Public/David/Remote Stocks/album/res:0.052s
列表/卷/公共/大卫/远程股票/专辑/风景:0.058s
列表/卷/公共/大卫/远程股票/专辑/风景区/拇指:0.064s
列表/卷/公共/大卫/远程股票/专辑/风景/幻灯片:0.068s
列表/卷/公共/大卫/远程股票/专辑/风景区/资源:0.074s
列表/卷/公共/大卫/远程股票/相册/人:0.08s
列表/卷/公共/大卫/远程股票/相册/人物/拇指:0.082s
列表/卷/公共/大卫/远程股票/相册/人物/幻灯片:0.085s
列表/Volumes/Public/David/Remote Stocks/album/People/res:0.089s
listing/Volumes/Public/David/Remote Stocks/.jalbum:0.091s
上市/成交量/公开/大卫/远程股票/体育:0.103s
listing/Volumes/Public/David/Remote Stocks/Sports/.jalbum:0.106s
listing/Volumes/Public/David/Remote Stocks/Sports/.jalbum/thumbs:0.108s
上市/成交量/公开/大卫/远程股票/风景区:0.11s
listing/Volumes/Public/David/Remote Stocks/scient/.jalbum:0.122s
listing/Volumes/Public/David/Remote Stocks/scient/.jalbum/thumbs:0.124s
上市/成交量/公开/大卫/远程股票/人:0.126s
listing/Volumes/Public/David/Remote Stocks/People/.jalbum:0.133s
最后,我尝试在Windows上执行多线程列表,以克服网络延迟效应。它起到了一定的作用,从9秒到3秒,即快3倍,但性能仍然比MacBook pro客户端测得的0.133s慢得多。我想你偶然发现了一个已知的Windows问题 或许本文可以帮助您: 编辑: 如果您确信您的问题不是由于操作系统连接到旧SMB协议公开的共享时的不良行为造成的,那么这是一种(并非闻所未闻的)可归咎于JDK实现的缓慢 OpenJDK和Oracle Java的
Java.io.File.listFiles()
委托给(未公开的)抽象类Java.io.FileSystem
的String[]list()
方法,该方法反过来又由Java.io.UnixFileSystem
,Java.io.Win32FileSystem
以特定于平台的方式实现,和java.io.WinNTFileSystem
他们的list()
函数始终是本机的
,因此我认为速度慢是由JRE附带的DLL实现造成的
我们以前在WindowsXP中遇到过类似的文件浏览问题。很长一段时间以来,这是JRE的一个突出缺陷。我认为您偶然发现了一个已知的Windows问题 也许是这个阿蒂