Posted: Sun Aug 11, 2013 8:30 am
pastuch, just trying to do what I can! My middle names aren't "Ace Ventura" for nothing.
I just found something else about the time you posted...
tzuk, please don't give up on this issue yet.
I hope you can see what I'm pointing out, or give some explanation.
And what do you mean, focused on the wrong stuff? YOU mentioned Job Object stuff as possibly being the cause of slowdown, so I'm pointing out that has nothing to do with it (not that I ever thought it did...).
I'm still just focused on CreateWindow because that IS a specific area where speed is being lost. Seriously, if that gets running as fast as I believe it CAN be, the window creation should be about as fast as can be, and I'd be extremely happy! (I'm talking about IE windows and PA Configuration for example, to see major gains.)
I haven't spotted any other things where huge time is being lost, so I don't get your statement.
Do you know about something else?? 
Anyway, I just fired up API Monitor again last night just to see if I could notice... anything amiss, etc., and again was surprised by a key detail I found within a matter of minutes (why didn't I check before?!). And that is.....
NtDeviceIoControlFile(4, ...);
_wcsicmp(box_name, box_name);
Exactly the same calls/results over and over again 50-150 times for ONE CreateWindow call!! (Doesn't happen with dialogs.) Why 50-150? Well, there are 50 other "top-level" (???) window objects with just API Monitor in the sandbox; 150 of them after adding 10 IE windows.
What in the world is that?!
Besides doing the same calls over and over and over, it makes absolutely no sense that identical strings would be "compared."
Probably more to it than that, but WHY is X (anything) happening for EACH sandbox window with CreateWindow?
I just can't see any reason... I figured something like that was happening, but wasn't sure until now.
Again I ask, why doesn't CreateWindow just run "naturally" in the Job (no slowdown)?? It's all in the process/Job anyway, so let it run.
tzuk, please don't give up on this issue yet.
And what do you mean, focused on the wrong stuff? YOU mentioned Job Object stuff as possibly being the cause of slowdown, so I'm pointing out that has nothing to do with it (not that I ever thought it did...).
I haven't spotted any other things where huge time is being lost, so I don't get your statement.
Anyway, I just fired up API Monitor again last night just to see if I could notice... anything amiss, etc., and again was surprised by a key detail I found within a matter of minutes (why didn't I check before?!). And that is.....
NtDeviceIoControlFile(4, ...);
_wcsicmp(box_name, box_name);
Exactly the same calls/results over and over again 50-150 times for ONE CreateWindow call!! (Doesn't happen with dialogs.) Why 50-150? Well, there are 50 other "top-level" (???) window objects with just API Monitor in the sandbox; 150 of them after adding 10 IE windows.
What in the world is that?!
Probably more to it than that, but WHY is X (anything) happening for EACH sandbox window with CreateWindow?
Again I ask, why doesn't CreateWindow just run "naturally" in the Job (no slowdown)?? It's all in the process/Job anyway, so let it run.