Jump to content
Software FX Community

When charting a very large number of data points IE6 and IE7 run the OS out of GDI objects.


DanielL_550
 Share

Recommended Posts

When charting a very large number of data points IE6 and IE7 run the OS out of GDI objects. Over 9998 GDI objects are created. This problem occurs when using ChartFX in Png non-interactive, Png interactive mode with AJAX, and .NET rendering modes. We did some experimentation and found that when we turned the tooltips off with Png non-interactive and .NET rendering modes IE does not create the large number of GDI objects. When using Png interactive mode with AJAX, IE still creates over 9998 GDI objects.

 

Our clients really need to chart a very large amount of data and we need the tool tips to work in all modes. Some of our clients prefer AJAX because they do not need to set security settings but other clients want the full functionality that the .NET control provides and will set the security.

 

Is there a fix for this problem?

 

Thank you.

Dan

Link to comment
Share on other sites

When you generate an image, interactive or otherwise, all the processing is done in the server. Whatever GDI objects are created in the client are created by Internet Explorer. Tooltips are generated by using image maps. We have NO CONTROL over what internet explore does with these image maps. It seems strange though that it will create GDI objects for them. Png interactive or tooltips (or both) require these image maps. Bottom line is that unless this is a bug in IE fixed in a service pack or something like that there is nothing you can do about these resources, other than avoiding image maps altogether.

.NET rendering is completely different because all rendering is done in the client, so these two can not be compared in terms of GDI usage. It is not clear from your posting whether you are seeing this behavior in the .NET client too. Reading your posting it seems that you are saying that using the .NET client, if you turn tooltips ON you get a lot of GDI resource but with tooltips OFF you don't. This doesn't sound right, I don't see how tooltips can affect the .NET client control in that way.

Link to comment
Share on other sites

Just to verify

The GDI object problem happens in all rendering modes unless we turn off tooltips.

Reading your posting it seems that you are saying that using the .NET client, if you turn tooltips ON you get a lot of GDI resource but with tooltips OFF you don't.

This is exactly what we see. You can use the Windows task manager and go to view and choose the GDI objects to see how many GDI objects are created.

Thank you.

Dan 

 

 

 

Link to comment
Share on other sites

> You can use the Windows task manager and go to view and choose the GDI objects to see how many GDI objects are created.

Where exactly is that? I don't see this option in my task manager.

I normally look at the private bytes provided by window performance monitor. I do not see this behavior on my end. Can you please describe the exact procedure our are using to look at these resources. Can you post a screenshot?

Link to comment
Share on other sites

I am sorry Francisco, I was wrong, you are correct about the .NET ChartFX control. It never creates a large number of GDI objects. We had reports that it was also causing a large number of GDI objects to be created and I thought I had seen this in preliminary testing. I started thinking about what you said so I wrote a quick test program to more easily test different combinations. I created a chart to document my results.

 

 

Png Non-Interactive

Png Interactive (AJAX)

.NET Control

 

 

 

 

Tooltips off

*

X

*

Tooltips on

X

X

*

 

* Does not have the GDI problem

X   Does have the GDI problem

 

In Summary:

The Png Non-Interactive rendering mode only has the problem with tooltips on.

 

The Png Interactive (AJAX) rendering mode has the problem if tooltips are on or off. I found out this rendering mode uses a map to display the right click context menu so this is why I see the problem when the tooltips are off.

 

The .NET control never has the GDI problem.

 

I have attached my test Visual Studio 2005 project so you can duplicate my results. You can monitor the GDI objects by displaying the “Task Manager”, then choose the “View” menu option, then the “Select Columns” submenu option. When the “Select Columns” dialog displays, check the “GDI Objects” checkbox and then select “OK”. Click the “GDI Objects” column header two times to sort the column with the largest number at the top. Let me know if you have trouble finding it.

 

I wonder why IE would create a large number of GDI objects when image maps are used? It seems to cause issues with the XP OS if the number of GDI objects in IE exceeds 9998. Is there another way around this problem when using the Png Interactive (AJAX) rendering mode? I assume there isn't since maps are used to display the right click context menus.

 

Let me know if you have any questions.

 

Thank you.

Link to comment
Share on other sites

Now this all makes sense!

As I originally thought the problem is being caused by image maps.

Image maps are required for tooltips and for AJAX interactivity. We simply can not implement these without it.

I tried your sample app and was able to reproduce the problem but honestly I don'

t think there is anything that can be done here except to get rid of image maps (and tooltip and AJAX functionality along with it).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...