6

scala-io moveTo私は奇妙な方法の問題に直面しました。これが私のファイルシステムtmpです。ディレクトリはRAMにあります。

〜%df -Th〜/ :)
ファイルシステムタイプ使用されるサイズ使用可能な使用%マウントされる
rootfs rootfs 112G 18G 89G 17%/
/ dev devtmpfs 3.9G 0 3.9G 0%/ dev
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)

さらに、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
4

1 に答える 1

0

結局のところ、それは実装の問題でした。moveToこれで修正されました。

于 2012-03-26T13:46:20.860 に答える