I turned it off. After watching that Dalvik presentation on Google, it's seems to me that using swap is pointless in Android (I suppose that's why swap support wasn't built in kernel). My experience with swap supports that.
So, Dalvik, it's GC and low memory killer were designed to cope with limited RAM (the goal was around 20MB I think). If you have more RAM than that, it's great, but if you don't have much more (like in Galaxy
), swapping doesn't really help. From what I found, not only that it doesn't help, it actually makes things worse. Android application lifecycle is somewhat different than what you might call a "normal" application lifecycle. In Android, an application lives even if its process has been terminated. That means that normally running loads of apps doesn't pose a problem at all because you don't have to have loads of processes alive. But if you use big enough swap, it's unlikely that either of app's processes will ever get killed. And that's a bad thing, because if you try to focus an app which resources are not in RAM, a swap will kick in. And that's slow. It's much quicker to fork a new process and have a (running) app reinitialize itself. And in Android, it supposed to be that way.
So, regardless of what I said earlier, I'll probably won't ever use swap again.