Tag: 性能

使用编译器的关联性有什么问题?

有时可以使用关联性来消除数据依赖性,我很好奇它可以提供多少帮助。 我很惊讶地发现,通过手动展开一个简单的循环,我在Java(build 1.7.0_51-b13)和C(gcc 4.4.3)中几乎可以获得4的加速因子 。 所以我要么做一些非常愚蠢的事情,要么编译器忽略了一个强大的工具。 我开始了 int a = 0; for (int i=0; i<N; ++i) a = M1 * a + t[i]; 它计算接近String.hashCode()东西(设置M1=31并使用char[] )。 计算非常简单,对于我的i5-2400 @ 3.10GHz(在Java和C中), t.length=1000大约需要1.2微秒。 观察到每两个步骤a乘以M2 = M1*M1并添加一些东西。 这导致了这段代码 int a = 0; for (int i=0; i<N; i+=2) { a = M2 * a + (M1 * t[i] + t[i+1]); // […]

如何在Java中快速检索目录列表?

假设一个非常简单的程序列出了给定目录的所有子目录。 声音够简单? 除了列出Java中所有子目录的唯一方法是使用FilenameFilter与File.list()结合使用。 这适用于琐碎的情况,但是当文件夹说出150,000个文件和2个子文件夹时,它在那里愚蠢地等待45秒,遍历所有文件并测试file.isDirectory()。 是否有更好的方法列出子目录? PS。 对不起,请保存有关在同一目录中包含太多文件的讲座。 我们的现场环境将此作为要求的一部分。

通配符导入和所需类导入之间的性能差异

什么是性能之间的复杂性 java.io.* 和 java.io.File PS。 我知道第一个文件将包含java.io.*每个文件,下一个文件只包含选定的类文件。

String.intern()的垃圾收集行为

如果我使用String.intern()来提高性能,因为我可以使用“==”来比较实习字符串,我会遇到垃圾收集问题吗? 实习字符串的垃圾收集机制与普通字符串有何不同?