我遇到了一个奇怪的scala-io moveTo方法问题.这是我的文件系统,tmp目录位于ram中.
~ % df -Th ~/ :) Filesystem Type Size Used Avail Use% Mounted on rootfs rootfs 112G 18G 89G 17% / /dev devtmpfs 3.9G 0 3.9G 0% /dev run tmpfs 3.9G 236K 3.9G 1% /run /dev/sda btrfs 112G 18G 89G 17% / shm tmpfs 3.9G 872K 3.9G 1% /dev/shm tmpfs tmpfs 3.9G 34M 3.9G 1% /tmp
将文件从tmp主目录移动到主目录或向后移动时,首先它的速度很慢(主观上约为1M/s,而iotop显示为1500M/s),其次是100%的CPU负载.在同一文件系统中移动文件时,一切都按预期工作.
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_03).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import scalax.file.Path
import scalax.file.Path
scala> val tmp = Path("/tmp/ensime")
tmp: scalax.file.Path = Path(/tmp/ensime)
scala> tmp.exists
res0: Boolean = true
scala> val home = Path("/home/_4e6/dest")
home: scalax.file.Path = Path(/home/_4e6/dest)
scala> home.exists
res1: Boolean = false
scala> tmp.moveTo(home) // very slow
res2: scalax.file.Path = Path(/home/_4e6/dest)
scala> home.moveTo(tmp) // a bit faster but still unsatisfactory
res3: scalax.file.Path = Path(/tmp/ensime)
Run Code Online (Sandbox Code Playgroud)
另外,copyTo方法工作正常; replace和atomicMove旗帜不会改变任何东西; 而ramfs不是为我工作.
scala> val fs = scalax.file.ramfs.RamFileSystem()
fs: scalax.file.ramfs.RamFileSystem = Ram File System
scala> val ramTmp = fs("/tmp/ensime")
ramTmp: scalax.file.Path = RamPath(/tmp/ensime)
scala> ramTmp.exists
res9: Boolean = false
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
647 次 |
| 最近记录: |