Samsung Galaxy S 附带一个名为 RFS 的专有文件系统。
该文件系统在某些情况下似乎表现不佳。有些应用程序会出现延迟,而其他应用程序只是冻结 使用时。目前,外部团队已经创建了一个工具,基本上将整个系统迁移到 ext4。
但并不是每个人都精通应用它的技术,或者不想冒使智能手机保修失效的风险。
我意识到理想的情况是文件系统在所有情况下都是透明且高性能的。但由于情况似乎并非如此,我想知道:
- 有人知道如何解决 RFS 的粗糙边缘吗?
- 是否有开发人员应该阅读的指南或最佳实践文档?
多谢!
The Samsung Galaxy S comes with a propietary filesystem called RFS.
This filesystem seems to underperform in some occasions. Some applications get laggy, and others just freeze when using it. This has reached a point on which an external team has created a tool that basically migrates the whole system to ext4.
But not everyone is technically-savy to apply it, or don't want to risk voiding their smartphone's warranty.
I realize that the ideal situation would be that the filesystem was transparent and performant in all cases. But since this doesn't seem to be the case, I'd like to know:
- Does anyone know how to work around RFS' rough edges?
- Is there any guide or a best-practices document that the devs should read?
Thanks a lot!
发布评论
评论(2)
不要在 UI 线程上执行 I/O。就是这么简单。
这意味着不要加载首选项,不要查询数据库,不要解码位图等等......对所有这些事情使用后台线程。使用 StrictMode 让你的代码保持直线和狭窄。
FWIW 我是 Galaxy S 的所有者,长期以来,我一直对三星如何通过一个愚蠢的选择削弱其性能感到震惊。我现在在上面运行“Darky's ROM”,这基本上永久修复了所有问题......无法高度推荐该 ROM。
Don't do I/O on the UI thread. It's that simple.
That means don't load preferences, don't query a database, don't decode bitmaps, etc etc... use background threads for all those things. Use StrictMode to keep your code on the straight and narrow.
FWIW I am a Galaxy S owner and have long been appalled at how Samsung crippled its performance with one stupid choice. I run "Darky's ROM" on it now and that basically fixes everything permanently... can't recommend that ROM highly enough.
解决 RFS 的唯一方法是将其更改为 ext4。看看 Nexus S(Galaxy S 设备),Google 将 RFS 更改为 ext4。
RFS 确实很低,三星需要意识到这一点并改变这些设备。
当我使用 RFS 文件系统运行 Galaxy S 时,我只是有时“注意到”延迟(我是这样认为的),主要是在 twitter 同步最新内容时。该设备将完全锁定,我无法做任何事情。现在我正在使用 voodoo 运行内核,我意识到 RFS 有多慢。我来自 G1,所以 Galaxy S 的速度快如闪电。当我从 RFS 转到 EXT4 时,这种变化就像再次从 G1 转到 Galaxy S 一样。
我有几个朋友也有 Galaxy S,我向他们推荐了它。甚至他们也抱怨设备的延迟。
RFS 没有解决办法。每个开发者都应该联系三星并让他们知道 RFS 有多糟糕。
正如 Reuben 所说,不要在 UI 线程上执行 I/O,但无论如何这是一个很好的做法。但这仍然无法解决 RFS 的缺点。如果您执行大量 I/O,无论它在哪个线程上,它仍然会滞后于设备。
The only way around RFS is to change it to ext4. Look at the Nexus S (a Galaxy S device), Google changed the RFS to ext4.
RFS is R eally F ricken S low and Samsung needs to realize it and change these devices.
When I was running my Galaxy S with the RFS file system, I only "noticed" the lag sometimes (so i thought), mainly when twitter would sync the latest content. The device would completely lock up and I couldn't do anything. Now that I am running a kernel with voodoo, I realized how slow RFS is. I came from a G1, so the Galaxy S was lightening fast. When I went from RFS to EXT4, the change was like coming from my G1 to the Galaxy S again.
I have a few friends that also have the Galaxy S, and I recommended it to them. Even they complain about the lag of the device.
There is no work around for RFS. Every developer should contact Samsung and let them know just how bad RFS is.
As Reuben said, don't do I/O on the UI thread, but that's a good practice anyhow. But that still wont fix the short comings of RFS. If you do a lot of I/O, no matter what thread it's on, it is still going to lag the device.