Submitted by reesd on 2011/04/25 08:45
I just noticed today that IQ seems to be constantly accessing the registry for some ExtendedError key related to Microsoft Jet 4.0 OLE DB Provider Error Lookup. Below is a dump of a few seconds from procman. I have over ten thousand of these from just a few minutes of IQ running...
 
Is something in my environment missing that IQ is looking for?
 
d
 
 
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"8:31:35.8978608 AM","InfoQube.exe","5000","RegOpenKey","HKCU\Software\Classes\CLSID\{DEE35070-506B-11CF-B1AA-00AA00B8DE95}\ExtendedErrors","NAME NOT FOUND","Desired Access: Read"
"8:31:35.8978829 AM","InfoQube.exe","5000","RegOpenKey","HKCR\CLSID\{DEE35070-506B-11CF-B1AA-00AA00B8DE95}\ExtendedErrors","SUCCESS","Desired Access: Read"
"8:31:35.8979245 AM","InfoQube.exe","5000","RegQueryKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS","Query: Name"
"8:31:35.8979633 AM","InfoQube.exe","5000","RegOpenKey","HKCU\Software\Classes\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","NAME NOT FOUND","Desired Access: Maximum Allowed"
"8:31:35.8979974 AM","InfoQube.exe","5000","RegEnumKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS","Index: 0, Name: {dee35071-506b-11cf-b1aa-00aa00b8de95}"
"8:31:35.8980315 AM","InfoQube.exe","5000","RegCloseKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS",""
"8:31:35.8981097 AM","InfoQube.exe","5000","RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"8:31:35.8981290 AM","InfoQube.exe","5000","RegOpenKey","HKCU\Software\Classes\CLSID\{DEE35070-506B-11CF-B1AA-00AA00B8DE95}\ExtendedErrors","NAME NOT FOUND","Desired Access: Read"
"8:31:35.8981502 AM","InfoQube.exe","5000","RegOpenKey","HKCR\CLSID\{DEE35070-506B-11CF-B1AA-00AA00B8DE95}\ExtendedErrors","SUCCESS","Desired Access: Read"
"8:31:35.8981910 AM","InfoQube.exe","5000","RegQueryKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS","Query: Name"
"8:31:35.8982298 AM","InfoQube.exe","5000","RegOpenKey","HKCU\Software\Classes\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","NAME NOT FOUND","Desired Access: Maximum Allowed"
"8:31:35.8982639 AM","InfoQube.exe","5000","RegEnumKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS","Index: 0, Name: {dee35071-506b-11cf-b1aa-00aa00b8de95}"
"8:31:35.8982977 AM","InfoQube.exe","5000","RegCloseKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS",""
"8:31:35.8983399 AM","InfoQube.exe","5000","RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name"
"8:31:35.8983589 AM","InfoQube.exe","5000","RegOpenKey","HKCU\Software\Classes\CLSID\{DEE35070-506B-11CF-B1AA-00AA00B8DE95}\ExtendedErrors","NAME NOT FOUND","Desired Access: Read"
"8:31:35.8983799 AM","InfoQube.exe","5000","RegOpenKey","HKCR\CLSID\{DEE35070-506B-11CF-B1AA-00AA00B8DE95}\ExtendedErrors","SUCCESS","Desired Access: Read"
"8:31:35.8984204 AM","InfoQube.exe","5000","RegQueryKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS","Query: Name"
"8:31:35.8984586 AM","InfoQube.exe","5000","RegOpenKey","HKCU\Software\Classes\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","NAME NOT FOUND","Desired Access: Maximum Allowed"
"8:31:35.8984927 AM","InfoQube.exe","5000","RegEnumKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS","Index: 0, Name: {dee35071-506b-11cf-b1aa-00aa00b8de95}"
"8:31:35.8985265 AM","InfoQube.exe","5000","RegCloseKey","HKCR\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}\ExtendedErrors","SUCCESS",""
 

Comments

Anyone else seeing this?
 
Pierre any thoughts?

Armando

2011/05/11 00:14

In reply to by reesd

Hi Dave,
I'm seeing similar activity (using procmon.exe : process monitor).
 
--------------------------------------------------------------------------------
Windows XP Home Edition, Service pack 2
Dell Vostro 1500, Ram:3gb, CPU:Core2Duo T7500 2.2ghz

I am getting worried this IQ is causing real system performance issues on my machine. Which may explain why its running so hit lately (since I ramped up my IQ usage about two months ago).
 
I'm also seeing in Process Explorer that IQ is taking a very large number of Context Switches, even when minimized. I suspect they are related. My understanding is this means is sapping a lot more CPU than one would expect.
 
IQ is also still more GDI resources than just about anything else on my system except Firefox. Even when I reduce the icons down to just a couple (which helps). On Window XP there is a 10000 default limit for GDI handles and IQ is using a 1/3 of them with just 5 tabs open. IQ also has lots of redraw issues when Firefox 4 is also running.
 
See the attached image to see what I am seeing.
 
See this article for background:

From the article:
"However, even with fractional CPU there are almost always processes that are
consuming your CPU, but not shown as doing so. The reason for that is due to
the way that Windows does its time accounting. "Periodically (every 10 ms on
most systems) a clock interrupt fires. In response the Windows clock
interrupt routine executes and assumes that whatever thread is currently
running is the one that's used the CPU since the last clock interrupt. 10 ms
is a long time on today's multigigahertz CPUs and many threads can execute
between clock interrupts, but never be seen by the clock interrupt routine.
...
So, for a very different view of process activity on your system, add the
Context Switch Delta column and sort by it. You will see many processes with
threads that are running that do not show up as consuming any CPU time,
because the threads are running in between the 10ms clock interval. Some of
these processes are performing needless polling (such as querying the
registry or checking for changes in a folder)
. That is just plain sloppy
programming. Others may be performing useful work, but are running "under
the radar" of the system's time accounting mechanisms. It's your job to
determine the wheat from the chaff."
 
 
And here is an article about tracking down GDI usage:
 
d

Armando

2011/05/31 13:48

In reply to by reesd

Hi David,
 
Thanks for the articles -- very interesting.
 
The GDI resources problem is a known issue. Seems like there are multiple factors (like the way icons are loaded etc.) and I remember Pierre saying that some would be addressed when appropriate (in terms of development strategy).
 
As for the Context Switch Delta, CPU usage and "needless polling (such as querying the registry or checking for changes in a folder)" I don't think it has been discussed/addressed yet. That said, from the numbers in Process Explorer, it seems like some pruning could be done.
 
>IQ also has lots of redraw issues when Firefox 4 is also running.
 
I did run into some redraw issues, but I've noticed that these seemed to be directly linked to some specific Firefox plugins. I never ran into any firefox related redraw problems otherwise -- well, not that I can remember.
 
--------------------------------------------------------------------------------
Windows XP Home Edition, Service pack 2
Dell Vostro 1500, Ram:3gb, CPU:Core2Duo T7500 2.2ghz

Hi Pierre,
I'm trying to update Mantis by looking at the past 4-5 months here and I'm wondering if you had a look at this thread (performance related). I could of course add it to Mantis.
 
--------------------------------------------------------------------------------
Windows XP Home Edition, Service pack 2
Dell Vostro 1500, Ram:3gb, CPU:Core2Duo T7500 2.2ghz

These are the OLEDB driver accessing the registry. Being multi-user, IQ does not rely on in-memory data (as much as possible) and so it queries the database when it needs information on grids, items, field-values, etc. and these go through the OLEDB driver.
 
This is pretty standard stuff and performance should not be affected.
 
I've been meaning to move away from ADO (and hence OLEDB) and return to DAO which for Jet databases is generally faster, so stay tuned.
 

reesd

2011/07/20 11:33

In reply to by Pierre_Admin

[quote=Pierre_Admin]
These are the OLEDB driver accessing the registry. Being multi-user, IQ does not rely on in-memory data (as much as possible) and so it queries the database when it needs information on grids, items, field-values, etc. and these go through the OLEDB driver.
 
This is pretty standard stuff and performance should not be affected.
 
I've been meaning to move away from ADO (and hence OLEDB) and return to DAO which for Jet databases is generally faster, so stay tuned.
 
[/quote]
 
Note this is happening even when IQ is in the background. Shouldn't it be passive unless its in the foreground and I am doing something? I'll add that the high Context Switch count does mean its making a performance difference even when in the background because its causes the processor to switch threads to IQ from other things that are running. It may not be a lot, but its more than I would think from an app that is in the background not doing anything...
 
Thanks,
d