Hi,
There might be different solutions to this problem I had ... The first idea that came to mind is on the subject line, and that may or may not make any sense, but it's there now.
The problem is that operations like getting refreshing the inbox contents take some (a longish) time, and they take that same time every time the operation is made. When comparing to Gmail for example, refreshing the inbox is a quick operation.
Also viewing an email, ie. retrieving the email from the server seems to take some time but that's more understandable I guess.
Anyway, is this observed by others and is this a known problem, are there any plans to make folder operations faster? I saw that there were plans to make some more caching into Roundcube, is it part of the solution?
Just to inform myself, is there such a thing that a persistent imap connection and would that help? I took a quick look and the script seems to call iil_Connect() every time the script is run and on the surface it seemed a bit expensive operation?
Thanks, Ilkka
Ilkka Huotari wrote:
Hi,
There might be different solutions to this problem I had ... The first idea that came to mind is on the subject line, and that may or may not make any sense, but it's there now.
The problem is that operations like getting refreshing the inbox contents take some (a longish) time, and they take that same time every time the operation is made. When comparing to Gmail for example, refreshing the inbox is a quick operation.
It depends on the server you're running and the connection that server has to the IMAP server. For example the Demo-Installation has the IMAP server right next to it (LAN) and speed seems OK to me.
Also viewing an email, ie. retrieving the email from the server seems to take some time but that's more understandable I guess.
Anyway, is this observed by others and is this a known problem, are there any plans to make folder operations faster? I saw that there were plans to make some more caching into Roundcube, is it part of the solution?
There are some problems when caching headers of large folders.
Just to inform myself, is there such a thing that a persistent imap connection and would that help? I took a quick look and the script seems to call iil_Connect() every time the script is run and on the surface it seemed a bit expensive operation?
Connections are persistent for the time the script runs. A connection is established the first time needed and will be closed when the script ends. Since PHP is a scripting language and the process ends when reaching the end of the script it's not possible to keep up a connection during the whole session. But I don't think that connecting to the IMAP server is what takes much time.
Thanks, Ilkka
Thomas
It depends on the server you're running and the connection that server has to the IMAP server. For example the Demo-Installation has the IMAP server right next to it (LAN) and speed seems OK to me.
You are right, the problem turned out to be the network latency and nothing more. Local (to the webserver) servers work very well.
Connections are persistent for the time the script runs. A connection is established the first time needed and will be closed when the script ends. Since PHP is a scripting language and the process ends when reaching the end of the script it's not possible to keep up a connection during the whole session. But I don't think that connecting to the IMAP server is what takes much time.
Maybe it's a minor thing after all. And since there doesn't seem to be anything for this, for example in PHP's imap library, I guess it's not a big problem... but I guess it would be possible to do it at that level.
Ilkka
On Tue, Nov 08, 2005 at 09:54:18AM +0200, Ilkka Huotari wrote:
It depends on the server you're running and the connection that server has to the IMAP server. For example the Demo-Installation has the IMAP server right next to it (LAN) and speed seems OK to me.
You are right, the problem turned out to be the network latency and nothing more. Local (to the webserver) servers work very well.
Connections are persistent for the time the script runs. A connection is established the first time needed and will be closed when the script ends. Since PHP is a scripting language and the process ends when reaching the end of the script it's not possible to keep up a connection during the whole session. But I don't think that connecting to the IMAP server is what takes much time.
Maybe it's a minor thing after all. And since there doesn't seem to be anything for this, for example in PHP's imap library, I guess it's not a big problem... but I guess it would be possible to do it at that level.
For this reason there are a few IMAP proxy daemons that will maintain and reuse existing IMAP connections. They do make a difference. I use the one from http://www.imapproxy.org/
Connections are persistent for the time the script runs. A connection is established the first time needed and will be closed when the script ends. Since PHP is a scripting language and the process ends when reaching the end of the script it's not possible to keep up a connection during the whole session. But I don't think that connecting to the IMAP server is what takes much time.
Maybe it's a minor thing after all. And since there doesn't seem to be anything for this, for example in PHP's imap library, I guess it's not a big problem... but I guess it would be possible to do it at that level.
For this reason there are a few IMAP proxy daemons that will maintain and reuse existing IMAP connections. They do make a difference. I use the one from http://www.imapproxy.org/
I find that often the setup and disconnection phases of making a network transfer are often a large percentage of the time take for smaller transfers (obviously the longer time connected the less impact this has). Enabling persistent IMAP connections in (for example) Thunderbird speeds up IMAP access massively. So, if there is a way to integrate persistent connections (such as the previously mentioned IMAP Proxy) then I'd be all for it. It should be easy to have it an option on the settings so that is the flag use_proxy is set and the proxy daemon is not running, then it is started.
Jeff