如何测试应用程序是否正确处理缓慢/片状文件系统?
-
05-07-2019 - |
题
我想确保我的应用程序在处理慢速文件系统上的文件时没有任何用户界面冻结(例如联网,CD / DVD或降速硬盘)。
我直接使用Cocoa文件系统操作。我担心为了测试而模拟或抽象所有这些都是太费劲,而且我的程序可能会有非显而易见的方式来触及文件系统。
我尝试使用网络驱动器进行测试,但操作系统缓存使测试不可重复且......太快了:)
有没有像故意慢的MacFuse文件系统?还有其他方法可以让我找到由意外延迟引起的所有UI打嗝和竞争条件吗?
解决方案
最简单的答案是 MacFUSE ,如其他地方所述;这很容易模拟。您还可以尝试通过NFS挂载共享,然后使用内置的 ipfw
进行位限制,例如:
ipfw pipe 1 config 1KByte / s ipfw添加1个管道1个src-port 2049
或者如果您使用的是WebDAV
ipfw add 1 pipe 1 src-port 80
然后,这将通过您定义的任何管道级别提供请求。你应该能够在以后再次摆脱它:
ipfw delete 1
其他提示
也许买一个慢拇指驱动器?我在百思买发现了冰川的一些。通过几个USB集线器和键盘插入它们,因此它们将处于非常灵活的连接状态。
-W
使用Cocoa框架编写MacFUSE文件系统非常容易。事实上,我认为甚至包含一个示例系统只是镜像本地文件系统。为什么不快速调整该代码,以便在每次操作期间调用sleep()一段时间?
根据您担心遇到问题的地方,我首先想到的是在应用程序和文件i / o之间添加一层额外的函数调用,并在该层构建一些sleep()调用。也就是说,无论您使用何种语言,请将“读取”替换为“读取”。使用“readDelegate”调用,让readDelegate在指定的时间内休眠,然后进行实际读取并返回值。当你准备好投入生产时,你甚至不需要拉出额外的层,只需要取消睡眠。
软驱怎么样?必须有外部的,你可以通过usb左右连接......