>>Well, it appears I've found the problem. Our app has a fairly decent-sized SET PROC list. If I issue a SET PROCEDURE TO, then the chart will render within a second.
>>
>>So, the $1,000,000 question is why would the SET PROC list have any negative impact on GDI+?
>>
>>And the bonus question would be why this issue doesn't even show up when stepping through the debugger while the same SET PROC list is in effect.
>>
>>Either way, I'm thrilled that I found the issue!
>
>Hi,
>
>and I am thrilled to find out why this particular setting has an effect on the production environment, as you mentioned FoxCharts are loading in development within a split second.
>
>Regards.
>
>Koen
Hi guys,
FoxCharts uses GdiPlusX. At any moment any of the FoxCharts classes use the SET PROCEDURE command.
This is done by GdiPlusX.
GdiPlusX is a collection of classes that is stored in 5 main PRG files. During initialization, we need to set "SET PROCEDURE" to find these 5 files whenever needed, to make all functions available.
For example:
SET PROCEDURE TO
DO System.App
? SET ("Procedure")
For me, here it shows:
SYSTEM.APP, SYSTEM.DRAWING.FXP, SYSTEM.DRAWING.DRAWING2D.FXP, SYSTEM.DRAWING.IMAGING.FXP, SYSTEM.DRAWING.TEXT.FXP, SYSTEM.IO.FXP
AFAIK, SET PROC command has a limit of 254 or 255 characters. Maybe you have a huge SET PROC ?
Or did you forget to use the ADDITIVE clause, to make it keep the old settings ?
From my part, I'll add some extra checking in FoxCharts to always be sure that SET PROC is correct.
Regarding GdiPlusX, I'll discuss this with Bo Durban (the project manager), and we'll add some new basic checking for that in the main library as well.
Thnaks a lot for your testings, it was really very helpful ! I hope that other people who were having performance issues will leverage from this as well.
Regards
Cesar