0

我在 unix(它的集群)和 Windows(intel core duo ,2Gb RAM)上运行相同的代码。我可以看到运行时间存在显着差异。我可以在 unix 中看到,它只使用一个核心,但在 Windows 上,它可能使用两个核心(我不确定)。我的担忧如下:

Windows:
   user  system elapsed
207.12 8.82  472.04
Unix
 user  system elapsed
327.765 2.493 330.819

我不明白,为什么 Windows 的 cpu 处理时间和经过的时间差异太大。我将代码分成几段,这只发生在读写部分(I/O)上,其余的计算与unix相比非常快,并且在“用户”和“经过”时间方面没有任何区别

user  system elapsed
48.765 0.00 52.69

我没有做任何特别的事情,但我正在阅读大约 300mb 的非常大的文件

indata <- read.csv(mutFile, sep="\t", header = TRUE)

如何避免这种差异以提高整体性能?

4

2 回答 2

2

300 MB 远非“非常大”。您可以read.csv按照 中的建议来提高速度?read.csv,特别是“内存使用”部分。这应该使两个系统上的运行时间更短。

至于系统之间的区别,我怀疑 Unix 机器有更快的 HDD 和/或更快的 RAM。

于 2012-10-01T20:46:22.323 回答
0

为了在读取数据集时获得高性能,我建议购买固态驱动器 (SSD)。但是,您的其他硬件(主要是您的 SATA 控制器)可能是瓶颈。此外,就 Gb/单位资金而言,SSD 并不便宜。通常,性能差异可以通过硬件差异(“普通”硬盘驱动器与笔记本电脑硬盘驱动器)来解释。解决方案是花钱购买更快的机器。或者,就像@JoshuaUlrich 所说,花一些时间优化文本文件的读取,以通过当前硬件获得良好的性能提升。

于 2012-10-01T20:54:36.607 回答