|
|
1
2
相反,使用外部批处理作业来生成文件列表要好得多,这些文件可以通过数据库调用读入servlet,甚至只需解析包含由换行符分隔的所有文件名的文件。在Linux上使用“find”是一种简单的方法。
|
|
|
2
1
如果您确实有大量的文件,您可能会考虑派生一个外部进程来执行搜索。如果您在类unix的服务器(如linux)上运行,则可以通过使用“find”命令搜索并解析其输出来提高速度。
|
|
|
3
1
我认为这一进程可能进展缓慢的原因有两个: 1) 磁盘I/O时间过长。这将是一个真正的限制,你不能做太多。通常,操作系统非常擅长在内存中保留结构,以便更快地找到文件夹中的文件。如果速度太慢,则可能需要自己在内存中构建索引。这完全取决于你怎么做。 在任何情况下,如果这是一个问题(你可以尝试测量),那么没有办法做过滤客户端将有帮助,因为这不应该真的需要很长时间,无论你在哪里做。相反,您将通过发送更多的数据进行排序来降低客户端的速度。 tree traversal 在wikipedia上,但基本上只是使用队列或堆栈来跟踪遍历的位置,而不是使用方法状态来跟踪。 请注意,文件系统实际上不是树,但我假设在本例中是树。否则它会变得有点毛茸茸的。
|
|
|
4
0
我认为你的servlet运行缓慢是因为硬盘速度太快。如果文件列表是永久的,你应该把它载入内存 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |