2008-04-17 07:38:59

vTiger slow account/products popup

After plowing through tons of code from both vTiger and ADOdb and pushing Google search to the max, I finally found a forum topic on vtiger.com covering the problem we were having with vTiger. The problem was that the popup to select an account or a product had load times averaging 60seconds. That's a huge usability issue (read: waste of time) when you are creating invoices or filling out your calendar.

Anyway, all the more reason to place it on my blog, with the all right keywords!

And now, for the solution:

Quoting onwealdandy
However, I fixed the performance issue with a work around that doesn’t make much sense, but worked. I read this forum post a few days ago, but couldn’t see how commenting out debug print lines would speed things up. But, that did the trick. However, I did narrow it down to the exact variable causing the ruckus ($list_result) , so I only had to comment out just a few lines in ListViewUtils.php. (any debug log lines with $list_result)

Even with logging set to FATAL, the slowness would occur. When you did set logging to DEBUG, one instance would show the correct information in the debug log for the debug log lines .. basically what you would expect when printing $list_result (which is a recordset object) .. the object id ... "Object id #40" ... however on the slow machine it would actually print the 2000+ records which were returned by the query.

There must be a bug in php or apache or mysql ( no idea) that returns the entire result set to $list_result when its evaluated for printing. My guess is that the libmysql.dll must have a default _tostring method in there in some versions. BE CAREFUL .. since there its not documented which versions do this ... for the record, my troubled instance was running php5.2.5, apache 2.2.6, and mysql 5.0.45

You can find the original vTiger topic here: http://forums.vtiger.com/viewtopic.php?p=64335