|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Nov 28, 2007 11:13 pm
Vista sure is slow! |
Am I the only one to notice this? Try the Ctrl-Q test in CMUD or zMUD on WinXP and then try it on Vista (if you have access to both). The Vista result is a *lot* slower than the WinXP result. This is just simple screen output and scrolling. Looks like Vista is trying to do something fancy in their display drivers that has slowed down text scrolling.
This really annoys me. I was working in Vista today and spend an hour trying to track down why CMUD was suddenly so slow. It was only after I tried zMUD 7.21 and got the same result that I confirmed that it was a Vista problem and not a CMUD issue. Another waste of time :(
There is no reason why normal text scrolling should be slower. It doesn't require any of the new Aero transparency stuff. Bad Microsoft! |
|
|
|
slicertool Magician
Joined: 09 Oct 2003 Posts: 459 Location: USA
|
Posted: Thu Nov 29, 2007 12:13 am |
From my experience with the beta vista technology and such: It's probably because Win32 apps that don't use the new Vista theming engine are converted into a bitmap frontend that you can scale up and down just like any other Vista app. This is probably the cause of your slow down.
I haven't really played with the final full blown version of Vista, so I can't say for sure though. |
|
|
|
Llwethen Novice
Joined: 08 Dec 2006 Posts: 37 Location: Lancaster,Oh
|
Posted: Thu Nov 29, 2007 1:12 am |
I would check that the fancy Aero stuff is turned off in Vista. It's a killer on the work machines I support that have the generic video set that comes in the Intel chipset.
Vista is using some new font technology ( Crystal Font or something like that) that does sub-pixel correction. Supposed to be sharper reading on LCD's when not at the panels native resolution. Honestly I cannot tell the difference.
Yeah the Vista drivers are 100% different and is part of why it's taking so long for truly mature drivers to come out. XP the driver is all part of the kernel. In Vista a small shim is in the kernel and all rest is actually a user app that loads at login. The new drivers seem like a hybrid of NT and XP drivers but basically trade speed for stability. At work I can live with more stability and protection against bad drivers/users/programs/developers ( in no particular order, all of them do crazy stuff given a chance).
Win 2000 took a good year+ before the drivers could come close to Win98se. Vista looks to be following an even longer curve. Network performance is even crazier than video, sometimes it blows XP off the road, other times it's so slow you want to kill it. |
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Thu Nov 29, 2007 4:20 am |
Llwethen wrote: |
I would check that the fancy Aero stuff is turned off in Vista. It's a killer on the work machines I support that have the generic video set that comes in the Intel chipset.
Vista is using some new font technology ( Crystal Font or something like that) that does sub-pixel correction. Supposed to be sharper reading on LCD's when not at the panels native resolution. Honestly I cannot tell the difference.
Yeah the Vista drivers are 100% different and is part of why it's taking so long for truly mature drivers to come out. XP the driver is all part of the kernel. In Vista a small shim is in the kernel and all rest is actually a user app that loads at login. The new drivers seem like a hybrid of NT and XP drivers but basically trade speed for stability. At work I can live with more stability and protection against bad drivers/users/programs/developers ( in no particular order, all of them do crazy stuff given a chance).
Win 2000 took a good year+ before the drivers could come close to Win98se. Vista looks to be following an even longer curve. Network performance is even crazier than video, sometimes it blows XP off the road, other times it's so slow you want to kill it. |
Agreed. And yes this is a SERIOUS Vista problem. However for me, its WORSE in cMUD than in zMUD.
I'm curious as to why, but I'm not able nor in the mood to explore it right now. |
|
|
|
Arlie Wanderer
Joined: 09 Jun 2006 Posts: 62 Location: Florida
|
Posted: Thu Nov 29, 2007 5:55 am |
Your mileage may vary, of course. My CMUD runs faster on Vista than it does on XP (note that my Vista box has 1 GB more ram, but all of the other specs are almost exactly the same, so maybe that has something to do with it, though I doubt it). :)
|
|
|
|
Rorso Wizard
Joined: 14 Oct 2000 Posts: 1368
|
|
Last edited by Rorso on Thu Nov 29, 2007 10:50 am; edited 2 times in total |
|
|
|
forren Novice
Joined: 26 Apr 2007 Posts: 44
|
Posted: Thu Nov 29, 2007 10:37 am |
I actually switched to Vista just to try it out. I gained about 15 seconds on my Cmud control-q with my Lusternia system, so I promptly reformatted back to XP.
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Nov 29, 2007 5:23 pm |
Quote: |
It's probably because Win32 apps that don't use the new Vista theming engine are converted into a bitmap frontend that you can scale up and down just like any other Vista app |
That would certainly slow it down. Perhaps when I compile CMUD using Delphi 2007 (which has better native Vista support) then maybe it will get better. I'm just using the standard Win32 API ExtTextOut directly to the window handle of the MUD output window. To scroll it is using ScrollWindowEx API routine (and optimizing exactly what part of the window that needs to be scrolled). So nothing fancy here. I'm not using any double-buffering or anything because that always slows it down. If I turn on double-buffering for the window (which sends stuff to a bitmap and then BitBlts the bitmap to the screen), then the speed in WinXP drops to about the same as the speed in Vista. So it looks like Vista is doing some kind of double-buffering behind the scenes. Not sure there will be any way to get around that. Turning off Aero doesn't seem to help.
Quote: |
Vista is using some new font technology ( Crystal Font or something like that) |
I think you are talking about Clear-Type fonts, and WinXP uses that too. In fact I have this font smoothing turned on in both Vista and WinXP. The next time I reboot into WinXP I'll turn it off to see if CMUD is even faster. But my comparison between WinXP and Vista both had this font smoothing enabled and Vista was still much slower. So I don't think it's a ClearType issue.
Well, if anyone figures out a way to make Vista faster, let me know.
Edited: Btw, I'm just using the "built-in" Vista drivers for the ATI Radeon 1600, so I'm going to go download the latest drivers from the ATI site and see what happens. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Nov 29, 2007 6:11 pm |
Well, the updated ATI drivers helped a bit, but the problem is still there. Here are my Ctrl-Q results:
zMUD 7.21:
Vista, default Radeon drivers: 18.2/7.4/7.3
Vista, latest Radeon drivers: 12.8/5.8/5.8
WinXP: 1.6/0.6/0.6
CMUD 2.13, WinXP: 3.6/1.7/1.7
So, that shows the scope the speed issues on my computer. I'm using the same computer for these tests...just booting either Vista or WinXP. As you can see, it's a pretty huge difference.
The difference between zMUD and CMUD is more expected just because CMUD has not had as much time to get optimized as zMUD has. I'm sure that CMUD speed will improve over the years.
But I mainly wanted to report this so that people were aware of how much difference Vista vs WinXP can make. It's possible that someone used to zMUD on WinXP will try CMUD on Vista and complain about the horrible speed. But as we can see, the exact same compiled application can run much slower on Vista.
Hopefully I'll be able to improve CMUD speed as I make it more of a native Vista app and learn the Vista tricks over the coming years.
Finally, as some people have already mentioned, your mileage might vary. It's possible that other video cards have better Vista drivers. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Nov 29, 2007 7:12 pm |
While I was listening to one of the CodeRage sessions this morning, I put CMUD into my profiler and let it do Ctrl-Q a bunch of times. I discovered why Ctrl-Q is slower than zMUD! One of the optimizations made in zMUD was to cache the character width values to avoid calling the Windows GetTextExtentPoint API routine to compute the width of each string output to the screen. I learned a long time ago that the GetTextExtentPoint API routine is *very* slow.
In CMUD, I added support for styles. They were implemented in a way similar to how I handle MXP fonts internally. And with MXP, zMUD/CMUD does not used the cached width because the MXP font might be anything. So, even though the default text was a single style, it was calling GetTextExtentPoint to compute the width all the time.
I added a character width cache to each style in CMUD, and now the CMUD Ctrl-Q speed is much closer to the zMUD speed! This doesn't do anything to help the difference between WinXP and Vista, but at least now there isn't going to be any difference between zMUD and CMUD. |
|
|
|
Tech GURU
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Thu Nov 29, 2007 8:41 pm |
Woohooo!!! Great find Zugg.
I don't have Vista, but I'm sure those who do will appreciate this. BTW when do we get a CodeRage conference update? |
|
_________________ Asati di tempari! |
|
|
|
Seb Wizard
Joined: 14 Aug 2004 Posts: 1269
|
Posted: Fri Nov 30, 2007 1:13 am |
Yet another reason to stick with XP!
|
|
|
|
ralgith Sorcerer
Joined: 13 Jan 2006 Posts: 715
|
Posted: Fri Nov 30, 2007 2:44 am |
Seb wrote: |
Yet another reason to stick with XP!
|
You needed a reason? :)
Vista sucks! lol |
|
_________________ CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate |
|
|
|
Fang Xianfu GURU
Joined: 26 Jan 2004 Posts: 5155 Location: United Kingdom
|
Posted: Fri Nov 30, 2007 3:00 am |
I'm buying a new computer soon (very soon now that Intel's Yorkfield is out - I'll probably wait for the new Geforce 8800 GTS though) and was kinda hoping that Vista SP1 will improve it enough to be worthwhile. It'll be nice to hear from the people with Vista once it's out (or from anyone who's already got a beta version).
|
|
|
|
Standoff Beginner
Joined: 24 Mar 2007 Posts: 15
|
Posted: Fri Nov 30, 2007 3:11 pm |
I'm kind of amazed at all the negativity about Vista myself. A lot of the stuff it breaks never worked all that well to begin with, and I suspect people will say 'this is what Vista should've been!' when the next Windows comes out, nevermind that without the changes made by Vista, it never would've been.
I went from dual booting in November to Vista only somewhere between April and June, and I'm definately not going to ever use XP again.
___
On an unrelated note, DEP isn't the only thing that can keep CMUD from starting on Vista, Windowblinds seems to do a swell job of it until you tell it to exclude CMUD from skinning. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Nov 30, 2007 5:56 pm |
Quote: |
Windowblinds seems to do a swell job of it until you tell it to exclude CMUD from skinning. |
At the risk of hijacking this thread, does this still happen in CMUD v2.13? v2.13 should be compatible with WindowBlinds as far as I can tell (assuming that it's not a bug in the Vista version of WindowBlinds).
But back to the topic: I'm not trying to start a religious war here. There are some things to like about Vista. But there are also some things *not* to like about Vista. This has been well discussed in many other places.
Regardless of whether someone loves Vista or hates Vista, this thread was just addressing a *fact* between Vista and XP, at least on my computer here. CMUD (and zMUD) just scroll text more slowly on Vista compared to XP. And this speed difference is significant. It doesn't mean that CMUD/zMUD didn't "work all that well to begin with". That has nothing to do with it. zMUD/CMUD are using standard Windows API TextOut calls just like applications are supposed to. And this is slower on Vista.
Maybe it's the video drivers. Maybe it's the changes Vista made to how the GDI is handled. It doesn't matter. Vista makes CMUD/zMUD slower and that's going to give some people a valid reason not to use Vista. And this doesn't look like something that I'll be able to fix within CMUD itself.
But, as Fang mentioned, a few years from now we are all going to be using newer computers and Vista will be forced upon us. Some people might keep using XP for a long long time. But the majority of people are going to be stuck with whatever is preinstalled on their computer and not have the knowledge/time/desire to wipe it out to replace it with XP.
I just want to make sure CMUD supports Vista as well as it possibly can. But I didn't want CMUD to get bashed for "being slow" when the problem was actually with Vista and not with CMUD itself. |
|
|
|
Standoff Beginner
Joined: 24 Mar 2007 Posts: 15
|
Posted: Fri Nov 30, 2007 8:34 pm |
I was only implying that the way you draw stuff doesn't appear to work well with how Vista redirects graphics calls, not that CMUD doesn't work well.
My apologies if I worded that badly.
CMUD rocks. I'd used MUSHclients stale program for many many years before I paid for CMUD.
And yeah, I do tend to do a little hijacking, sorry :)
Registered this account a while back but decided posting just to say how much I liked CMUD was a little pointless.
As to Windowblinds, sadly I'm still on dialup so I don't have 2.13 yet...soon though. |
|
|
|
Standoff Beginner
Joined: 24 Mar 2007 Posts: 15
|
Posted: Fri Nov 30, 2007 10:04 pm |
Still getting the exception on launch with Windowblinds on 2.13, but the app is still running after.
The error reporting hates my firewall apparently, oh well. |
|
|
|
Vesence Beginner
Joined: 12 Mar 2006 Posts: 22
|
Posted: Fri Nov 30, 2007 10:34 pm |
Okay, so I'm doing this test on two different computers but here's what I get
Vista:
Cmud = 4.5-4.8
Zmud = 3.3-3.5
XP:
Cmud = 1.9 (almost all the time)
Zmud = .8-.6
The XP computer is almost 4 years old now and the Vista one is brand new.
Kinda makes me laugh... |
|
_________________ Achaea |
|
|
|
Malach Apprentice
Joined: 03 Nov 2007 Posts: 132
|
Posted: Fri Nov 30, 2007 10:43 pm |
I won't even say my CTRL-Q times on Vista with my full system going. But things seem to actually process fast enough so I don't mind the scrolling speed too much.
|
|
_________________ Intel Core2 Quad CPU @ 2.4 GHZ with Windows Vista Home Premium and 2 GB Ram |
|
|
|
Standoff Beginner
Joined: 24 Mar 2007 Posts: 15
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Nov 30, 2007 11:53 pm |
The result is actually the number of "tenth" of seconds. So 9.9 is 0.99 seconds. Don't ask me why it's displayed like that ;)
Oh, and everyone should also be very careful with this. Do *NOT* bother reporting any Ctrl-Q speeds if you are loading your package. You should only be comparing speed using the blank session that you get when you first run CMUD. Otherwise, your Ctrl-Q speed is going to be completely dominated by your scripts and triggers and will have very little to do with the raw text scrolling speed of Windows itself.
Also keep in mind that changing your window size will also effect Ctrl-Q (since it has to scroll a different number of lines based on the window size). So when comparing zMUD to CMUD, make sure you are using the same window size, the same font, etc. |
|
|
|
Standoff Beginner
Joined: 24 Mar 2007 Posts: 15
|
Posted: Sat Dec 01, 2007 12:03 am |
Edited my post before I saw you answered.
Anyway, enjoy yourselves, I'm off to do something...or pretend to do something, whichever works.
I wish all the random crap I knew actually helped me get a real job, but hey. That takes effort! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Sat Dec 01, 2007 12:10 am |
Thanks for the links. I'll have to see if I can figure out an easy way to turn the DWM Composite stuff off or on from within the Vista UI to see if that makes a difference.
The Ctrl-Q timing test simply times how long it takes to write 1000 lines to the screen. The preference in CMUD called the "Refresh Amount" controls how many lines can be written to the current window before CMUD calls the ScrollWindowEx Windows API. This routine determines the maximum width of the lines on the screen to tell windows what portion of the current window to scroll. By default, this option is set to 5, so every 5 lines, CMUD is calling ScrollWindowEx and then painting the new lines.
Now, if Vista is refreshing it's own desktop from it's off-screen buffers too often and is slowing down program execution because if it, than that might explain the speed difference. In fact, this is a quote from the MSDN site that probably explains this slowdown:
Quote: |
Evaluate whether your applications must provide its own double buffering. The DWM effectively double buffers content and presents the window in a single frame. |
CMUD does *not* double-buffer, because I have learned in the past that while double-buffering makes the scrolling look a bit smoother, it slows down the scrolling tremendously (actually, by about the same amount that we are seeing between XP and Vista).
It's too bad that Microsoft choose to slow down *all* applications by effectively turning on double-buffering for the entire desktop. It doesn't seem to be anything that can be changed on a per-application basis. So it looks like Vista users are just stuck with slower scrolling.
And for those who think this just doesn't matter: There are *many* people who compare various MUD clients based upon so-called "speed". The differences that we are showing here between XP and Vista are *much* larger than differences between most MUD clients. There *are* people who care about these kind of speed issues. |
|
|
|
Standoff Beginner
Joined: 24 Mar 2007 Posts: 15
|
Posted: Sat Dec 01, 2007 11:49 am |
Well, at any rate, I hope the links help you work better with Vista. I know it aint easy getting used to sudden changes in how the OS does literally everything as far as output...I'm no developer myself mind you but I consider myself very well read on the subject :)
Because anything that affects developers of the programs I use affects me in the end. And, of course, I'm a major tech and gaming geek.
:)
Perhaps someday I'll actually use that knowledge, but development requires patience that I currently lack. |
|
|
|
|
|