我发现File.listFiles()
从 Win 7 客户端通过 SAMBA 文件夹调用 Java非常慢,实际上比从 Mac 客户端慢了近 100 倍。(两个客户端都运行 Java 7)。两个客户端自然都在同一个 1GB LAN 上。一位客户从他的 Win XP 客户端进行了测试,并获得了比他的 Win7 客户端更好的性能。有谁知道如何解决这个问题?
一些测试数据,包括时间: 清单 31 个 SAMBA(“QNAP”NAS 磁盘)上的文件夹:
赢 7:
列出\\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.31 秒 列出 \\nas\Public\David\Remote Stocks\album\Animals\thumbs: 1.388s 列出\\nas\Public\David\Remote Stocks\album\Animals\slides:1.762s 列出 \\nas\Public\David\Remote Stocks\album\Animals\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\Scenic:4.695s 列出 \\nas\Public\David\Remote Stocks\album\Scenic\thumbs: 4.773s 列出\\nas\Public\David\Remote Stocks\album\Scenic\slides:5.194s 列出 \\nas\Public\David\Remote Stocks\album\Scenic\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\Scenic:8.486s 列出 \\nas\Public\David\Remote Stocks\Scenic\.jalbum:8.642s 列出\\nas\Public\David\Remote Stocks\Scenic\.jalbum\thumbs:8.72s 列出\\nas\Public\David\Remote Stocks\People:9.282s 列出 \\nas\Public\David\Remote Stocks\People\.jalbum:9.422s
Mac 上的相同列表:
上市/Volumes/Public/David/Remote Stocks: 0.0s 上市/Volumes/Public/David/Remote Stocks/Animals: 0.013s 上市/Volumes/Public/David/Remote Stocks/Animals/.jalbum:0.018s 上市/Volumes/Public/David/Remote Stocks/Animals/.jalbum/thumbs:0.022s 上市/Volumes/Public/David/Remote Stocks/专辑:0.027s 上市/Volumes/Public/David/Remote Stocks/album/Animals: 0.03s 上市/Volumes/Public/David/Remote Stocks/album/Animals/thumbs: 0.032s 上市/Volumes/Public/David/Remote Stocks/album/Animals/slides: 0.034s 上市/Volumes/Public/David/Remote Stocks/album/Animals/res: 0.038s 上市/Volumes/Public/David/Remote Stocks/album/Sports:0.04s 上市/Volumes/Public/David/Remote Stocks/album/Sports/thumbs: 0.042s 上市/Volumes/Public/David/Remote Stocks/album/Sports/slides:0.046s 上市/Volumes/Public/David/Remote Stocks/album/Sports/res: 0.05s 上市/Volumes/Public/David/Remote Stocks/album/res: 0.052s 上市/Volumes/Public/David/Remote Stocks/专辑/Scenic:0.058s 上市/Volumes/Public/David/Remote Stocks/专辑/Scenic/thumbs: 0.064s 上市/Volumes/Public/David/Remote Stocks/专辑/Scenic/slides:0.068s 上市/Volumes/Public/David/Remote Stocks/album/Scenic/res: 0.074s 上市/Volumes/Public/David/Remote Stocks/专辑/人物:0.08s 上市/Volumes/Public/David/Remote Stocks/album/People/thumbs: 0.082s 上市/Volumes/Public/David/Remote Stocks/专辑/人物/幻灯片:0.085s 上市/Volumes/Public/David/Remote Stocks/album/People/res: 0.089s 上市/Volumes/Public/David/Remote Stocks/.jalbum:0.091s 上市/Volumes/Public/David/Remote Stocks/Sports:0.103s 上市/Volumes/Public/David/Remote Stocks/Sports/.jalbum:0.106s 上市/Volumes/Public/David/Remote Stocks/Sports/.jalbum/thumbs:0.108s 上市/Volumes/Public/David/Remote Stocks/Scenic:0.11s 上市/Volumes/Public/David/Remote Stocks/Scenic/.jalbum:0.122s 上市/Volumes/Public/David/Remote Stocks/Scenic/.jalbum/thumbs:0.124s 上市/Volumes/Public/David/Remote Stocks/People: 0.126s 上市/Volumes/Public/David/Remote Stocks/People/.jalbum:0.133s
我终于尝试在 Windows 上执行多线程列表来克服网络滞后效应。它在一定程度上有所帮助,从 9 秒到 3 秒,即快了 3 倍,但仍然比我的 MacBook Pro 客户端测得的 0.133 秒慢得多。