tzuk wrote:I introduced some optimizations into the GUI code so hopefully version 4.01.05 improves performance a bit. As for registry performance I'm not sure I have anything conclusive yet. I'd like to hear how version 4.01.05 behaves for you.
Thanks, now I have hope!
Regarding registry speed, you must have done something? Performance on regedit search (Keys/Values/Data) is nearly TWICE as fast as .04! Can we get some more of that?
Nearly doubling again would be better than 3.76.
Also, I'm still wondering about possible kernel memory leaks I asked about awhile back in 3.76 (unless just Windows weirdness, but you said you'd look into it after the 4 beta), plus others now in 4.01. I have Task Manager screenshots before and after closing sandboxed programs. It was active for 20 days, and you can see kernel memory drop 200 MB (same as 3.x). Also running that whole time, OE, and its memory usage increased continuously (maybe slower at the end) and well as SBIE's GuiProxy process (same PIDs as earlier Process Explorer screenshot), and that did NOT drop at all after closing stuff... I'll watch .05 now. It
seems to be using less CPU time (but still more than 3.x).
Before:
Processes/
Performance
After:
Processes/
Performance
Now the interface/GUI slowness... I immediately noticed populating and scrolling the ListView controls (Explorer, OE messages, etc.) was very fast again (no need to measure). So I guess that's like 3.76.
Still noticed general slowness, however (launching, opening new windows, Open/Save dialogs, etc.; more in a sec). I see you fixed the Firefox Save As click-Cancel-twice-to-actually-cancel glitch.
Then I went to check PerformanceTest's 2D Windows Interface benchmark, and was going to say, "I see what you did there."
Just optimized for that benchmark, but other stuff was still slow? (Did you ever run it?) Haha, no I see that's not true now, and I guess what fixed the ListView stuff
really fixed PerformanceTest: I'm seeing like
20% better Windows Interface scores sandboxed now, compared to UNsandboxed!
Not sure how that's happening (maybe FindWindow() is faster sandboxed without "other" windows? *shrug*)
That's all I thought there'd be to report, until I wanted to verify that Recent Documents still won't work at all... I hadn't tried with OpenWin=* on the main system before to check Recent Docs, but I did that and launched IE 6 to do a test "Save As," and guess what? It was WAY faster, felt nearly like 3.76! I waited till later to get some AppTimer numbers from the laptop, but... Basically no difference there; few hundredths, but I'd expect that if a whole chunk of code is bypassed with *
So then before my other post yesterday, back to this system to check AppTimer...
(This is all about launching IE 6.) Main system, usual SBIE settings:
1.22s (I originally said over a second, though I hadn't timed anything in forever here), which I think is better than .04 going by laptop comparisons. When I just added OpenWin=*, that dropped to
0.5s!
I only have a few OpenWin, including 2 templates (AutoSizer, EMET), so would try removing them. One of the first was for Recent Documents (since it doesn't work anyway):
OpenWinClass=<Open/Save Files>,$:explorer.exe
Bingo! Somewhat. That takes launch time down to
0.7s. Besides launching, interface stuff is much better then, but I still feel/see some slowness with new windows, Open/Save... But with Open=*, that stuff is
nearly as fast as 3.76, but not quite. I can no longer see slow redrawing (like OE toolbar), but still feel a delay with windows opening (even though it's VERY fast compared to 4.01 with Open=$:explorer).
The slight remaining extra slowness vs 3.76 is about proportional to the launch difference. For reference, IE with 3.76 takes
0.4s (
0.37 with Open=* [again, expected with code bypass]; NO other OpenWin settings have an effect), and <
0.2s unsandboxed.
Back to 4.01: I wanted to see if i could get more details for you, so I tried other stuff 12 hours ago. Does the number of OpenWin entries matter? No, tried adding 20 different Dummy windows. Program prefix/group/number of group programs matter? Nope.
Then the last thing I tried was
really interesting.
Use * with a prefix (Open=iexplore.exe,*): takes
2.7s! Instead of way faster like global *, it's way slower.
So there's that discrepancy, plus the $:explorer.exe slowdown that doesn't exist in 3.76.
On the clean, default laptop, the differences are much smaller, but certainly distinctly measurable with AppTimer. Not sure why the HUGE differences on this system...
Hope these specifics help. Sorry for the long post, just wanted to provide detailed feedback!
It almost feels like we could get to 3.76's performance now, or perhaps better.
Nice progress in 1 update!