I switched from squirrelmail a couple of months ago and so far I'm happy. I was really hoping roundcube would be faster, but it's really not. My IMAP server is local, and I'm running Apache2 with the php module. Bringing up 50 (or 100) messages in the same folder is nearly identical speed for squirrelmail and roundcube. This leads me to believe the time is spend in either the php compilation or the local IMAP work. So, I'm wondering if we could just make roundcube appear faster.
I'm a C coder, not a PHP or web guy, so this may all be bogus, but here goes:
"<retrieving headers>" for each message line, giving me a pretty quick page load.
retrieved the from, subject, recvd date, is filled in line by line.
If this is possible, it leverages the user's time spent looking at a message to download other message headers.
Do you have APC enabled?
On Tue, 12 Jun 2007 08:30:10 -0700, "kbyrd-roundcube@memcpy.com" kbyrd-roundcube@memcpy.com wrote:
I switched from squirrelmail a couple of months ago and so far I'm happy. I was really hoping roundcube would be faster, but it's really not. My IMAP server is local, and I'm running Apache2 with the php module. Bringing up 50 (or 100) messages in the same folder is nearly identical speed for squirrelmail and roundcube. This leads me to believe the time is spend in either the php compilation or the local IMAP work. So, I'm wondering if
we
could just make roundcube appear faster.
I'm a C coder, not a PHP or web guy, so this may all be bogus, but here goes:
- User views a folder.
- Roundcube gets the count pretty quickly and renders a stand in page
with
"<retrieving headers>" for each message line, giving me a pretty quick page load.
- The IMAP work continues in the background and as each message header is
retrieved the from, subject, recvd date, is filled in line by line.
If this is possible, it leverages the user's time spent looking at a message to download other message headers.
On 6/12/07, kbyrd-roundcube@memcpy.com kbyrd-roundcube@memcpy.com wrote:
I switched from squirrelmail a couple of months ago and so far I'm happy. I was really hoping roundcube would be faster, but it's really not. My IMAP server is local, and I'm running Apache2 with the php module. Bringing up 50 (or 100) messages in the same folder is nearly identical speed for squirrelmail and roundcube. This leads me to believe the time is spend in either the php compilation or the local IMAP work. So, I'm wondering if we could just make roundcube appear faster.
I'm a C coder, not a PHP or web guy, so this may all be bogus, but here goes:
- User views a folder.
- Roundcube gets the count pretty quickly and renders a stand in page with
"<retrieving headers>" for each message line, giving me a pretty quick page load.
- The IMAP work continues in the background and as each message header is
retrieved the from, subject, recvd date, is filled in line by line.
If this is possible, it leverages the user's time spent looking at a message to download other message headers.
I may be biased (:D) - but for myself RC is a lot, lot faster than Squirrelmail. I have two identical webmail setups, one squirrelmail, one roundcube. The difference is, the RC server is in Chicago, the Squirrelmail server is in Frankfurt and they both use the same IMAP backend (Courier+Postfix) which is also located in Frankfurt.
The RC webmail is a lot, lot faster even though it's in another location, and Iohamail (RC's PHP class to access IMAP) is one of the fastest implementations (in PHP) I have seen.
Of course there's plenty room for improvement since PHP might not be the weapon of choice when it comes to IMAP, but an improvement in speed should be already visible on login when you compair the two webmails.
Let alone searching in RC is maybe 20x faster than in Squirrelmail.
Cheers, Till
P.S. No offense meant to anyone running Squirrelmail, it served me well too over the years.
I may be biased (:D) - but for myself RC is a lot, lot faster than Squirrelmail.
[snip]
I wasn't trying to bash roundcube, I'm using it as my main interface. I only user squirrelmail now when someone says: "It's prettier, is it faster?". I bet I'm not getting as much IMAP improvement since both of my setups access through localhost.
I'll try APC (from previous responder). Not counting that, does my idea have any merit? Regardless of how fast roundcube is, it seems loading message header while the user is busy looking at other messages can only help. I like to set my "rows per page" to 100 (or at least 50) and that takes time regardless of which front-end I'm using. Of course, it may not be possible to render a row then update later once the info comes back from IMAP.
On 6/12/07, kbyrd-roundcube@memcpy.com kbyrd-roundcube@memcpy.com wrote:
I may be biased (:D) - but for myself RC is a lot, lot faster than Squirrelmail.
[snip]
I wasn't trying to bash roundcube, I'm using it as my main interface. I only user squirrelmail now when someone says: "It's prettier, is it faster?". I bet I'm not getting as much IMAP improvement since both of my setups access through localhost.
I didn't read your email as bashing - more a feedbacky user experience. So no sweats! :-)
I'll try APC (from previous responder). Not counting that, does my idea have any merit? Regardless of how fast roundcube is, it seems loading message header while the user is busy looking at other messages can only help. I like to set my "rows per page" to 100 (or at least 50) and that takes time regardless of which front-end I'm using. Of course, it may not be possible to render a row then update later once the info comes back from IMAP.
I (think) am using eAccelerator on both servers. I am not really sure though - on the Squirrelmail install for sure. If you try APC, please post your experiences to the list as this is also on my list of things to try out and I haven't really found time yet.
In regard to your idea - of course that makes sense. One could probably implement that behavior using some ajax calls in the back to update the interface and so forth. That would probably help.
I've also spent some time reading about IMAP push (imap connection is left open and the server says "i got something new"), but I am not sure if one can implement that in PHP - especially since you'd need it to act like a daemon and with forking (on the module and Apache 1.3) vs. threading - no idea.
I also wouldn't want it to depend too much on the webserver.
I have no real experience with c/cpp since I gave up on that maybe 10 years ago, so I wouldn't be able to implement a daemon poller. I just know that PHP is not suitable for the job. ;-)
By the way, I have a third install of RC at work, but without any cacher enabled. It feeds off of a mailserver (Communigate Pro) on the same LAN (Gbit) and it's pretty speedy. But of course it could always be faster!
Cheers, Till
APC added a nice seat-of-the-pants increase in speed for me.
I wonder if we had a small benchmark script for roundcube I could post before and after results.
This would allow people to test their configuration and determine where speed bottlenecks are.
On Tue, 12 Jun 2007 18:30:13 +0200, till klimpong@gmail.com wrote:
On 6/12/07, kbyrd-roundcube@memcpy.com kbyrd-roundcube@memcpy.com
wrote:
I may be biased (:D) - but for myself RC is a lot, lot faster than Squirrelmail.
[snip]
I wasn't trying to bash roundcube, I'm using it as my main interface. I only user squirrelmail now when someone says: "It's prettier, is it faster?". I bet I'm not getting as much IMAP improvement since both of my setups access through localhost.
I didn't read your email as bashing - more a feedbacky user experience. So no sweats! :-)
I'll try APC (from previous responder). Not counting that, does my idea have any merit? Regardless of how fast roundcube is, it seems loading message header while the user is busy looking at other messages can only help. I like to set my "rows per page" to 100 (or at least 50) and that takes time regardless of which front-end I'm using. Of course, it may not be possible to render a row then update later once the info comes back from IMAP.
I (think) am using eAccelerator on both servers. I am not really sure though - on the Squirrelmail install for sure. If you try APC, please post your experiences to the list as this is also on my list of things to try out and I haven't really found time yet.
In regard to your idea - of course that makes sense. One could probably implement that behavior using some ajax calls in the back to update the interface and so forth. That would probably help.
I've also spent some time reading about IMAP push (imap connection is left open and the server says "i got something new"), but I am not sure if one can implement that in PHP - especially since you'd need it to act like a daemon and with forking (on the module and Apache 1.3) vs. threading - no idea.
I also wouldn't want it to depend too much on the webserver.
I have no real experience with c/cpp since I gave up on that maybe 10 years ago, so I wouldn't be able to implement a daemon poller. I just know that PHP is not suitable for the job. ;-)
By the way, I have a third install of RC at work, but without any cacher enabled. It feeds off of a mailserver (Communigate Pro) on the same LAN (Gbit) and it's pretty speedy. But of course it could always be faster!
Cheers, Till
setup to be faster. Dovecot indexes mail and so can return things
from the index that are kept there faster than others. Other servers
also have performance features built in.
a. Make sure roundcube is using the proper auth settings to login to
the imap server (since you login for every connection, lag here will
be seen quite often)
b. Make sure DNS is setup correctly (problems with reverse dns
resolution can cause lag when logging in, which happens on every
transaction)
batch, not stream them as they find them. So I don't think your idea
would buy much for what is probably a large deal of work to
implement. In any case, there's probably a number of things you can
do before you get to doing crazy things like that.
certain things (imap login, message retreival, searches, etc.) would
be nice, let them know what's taking time, and help people get the
most out of roundcube.
--Brian Jackson
p.s. Sorry this email is all over the place. It represents my mental
state pretty closely though.
On Jun 12, 2007, at 10:30 AM, kbyrd-roundcube@memcpy.com wrote:
I switched from squirrelmail a couple of months ago and so far I'm
happy. I was really hoping roundcube would be faster, but it's really not.
My IMAP server is local, and I'm running Apache2 with the php module.
Bringing up 50 (or 100) messages in the same folder is nearly identical speed for squirrelmail and roundcube. This leads me to believe the time is
spend in either the php compilation or the local IMAP work. So, I'm
wondering if we could just make roundcube appear faster.I'm a C coder, not a PHP or web guy, so this may all be bogus, but
here goes:
- User views a folder.
- Roundcube gets the count pretty quickly and renders a stand in
page with "<retrieving headers>" for each message line, giving me a pretty
quick page load.
- The IMAP work continues in the background and as each message
header is retrieved the from, subject, recvd date, is filled in line by line.
If this is possible, it leverages the user's time spent looking at a message to download other message headers.