WPF application performace poor on AMD, fine on intel? - wpf

Background
Im in the process of developing a telemetry app that shows some data from a model aeroplane. The app features a artificial horizon to show the aircraft's attitude. This is done by mooving around png images and is the probable the most processor intensive part of the system.
I have had no issues with my app until I bought a new laptop to use for primarily coding. I had tested the app on a number of machines but these all featured intel CPU's. On these the application ran fine.
When i tried to run this app on my new laptop (Ryzen 4500U and RADEON Graphics) the performace of the system is very poor and totaly un useable. Telemetry data is sent every 0.1 seconds and it lags far behing this which i believe to be unacceptable, considering it ran fine on a much lower speced laptop.
what it looks like
What ive tried
The obvious first move was to update the drivers for my laptop, which i did, no changes.
So Ive been trying to find a solution for the past few hours with no luck. There is a similar question WPF Application performance - Fine on Intel, Extremely Slow on AMD. This has similar problems and suspects acelleration. Ive tried turning this off in visual studio but it made no difference. I also had a brief go at trying to edit the regisrty to disable hardware acceleration, but this didnt work.
Here is a link to the entire project code, if you wish to check it out. Bear in mind its a WIP and im mediocre at WPF. code
Any Ideas?

Related

A small query regarding appcelerator titanium?

i'm planning on working with titanium.
i want to know if "Same origin policy" can be eliminated by using titanium.
are there any drawbacks in titanium?
please recommend some cross-platforms..
please do leave some suggestions..
Thank you,
SOP is especially used for HTTP. So it doesn't concern titanium since it only use javascript as "local" language that is "translated" into xcode. at the end you got an simple xcode-project and an .app file.
i use it for a quite complex app and it works fine. i needed adding some features as module written in objC since the framework isn't as ongoing concering the iphone API as the native objC, but that worked out fine.
Since you are asking for the drawbacks of Titanium.. here it is..
I would not say that it's cross platform. Even my android app will look different in my Mac compared to the one developed in Windows.
Not all functions will work on Android and iPhone. Some will partially work on the other.
Ti is a biased and Android Developer are always left behind.
Also, if you are developing an Android app like me, you will be facing a lot of problems and Kitchen Sink will not always work. Android development in Ti is very bad and expect to find a lot of bugs.
Contacts API is not even complete as of now (Version 1.60) . I can't even get the contacts email and phone number!
No Bluetooth support
I spent a lot of hours "debugging" and waiting for the emulator rather than serious coding.
API refence and the QA will help a bit but there are more questions than answers.
Ti doesn't even have a proper debugging features as well as IDE. Make sure to dedicate a lot of hours in knowing how it works. I have a hard time finding a good resources to start.
Memory Problem and Leaks are very common.
Gradients will not work in Android (use image instead)
and last thing, Documentation really sucks!
(but still I love Ti despite all of the above)

Silverlight vs Flash vs HTML5, should I care?

I have read a range of articles on advantages/disadvantages of Microsoft Silverlight framework in comparisson to Flash.
Fact that there were two version of Silverlight in the past 18 months worries me, as well as the fact that over 97% of web browsers already have Flash pre-installed.
I'm a .NET developer and I'm very happy with what I can do in the framework. At the moment I feel like I have to put my own preference to a side and decide whether I need to integrage flash with .NET instead of using Silverlight with WPF.
Did anybody try integrating Flash with .NET? What challanges did you come across? How easy was it in comparisson to working in Silverlight?
I have also read about recent talks between Microsoft and Adobe. Whatever way I go It feels very unstable. Can HTML 5 really compete with what's offered by Flash and Silverlight?
Thank you
I have integrated both Flash and Silverlight into my ASP.Net applications. I have to say that working with Silverlight was by far the easier way to go. Communication with the server is easier, initial setup was easier (along with a ASP.Net application or a simple HTML page). Integration into the ASP.Net application was the easiest part (as I'm sure you imagined it would be). If you're a .Net developer, then this is the way to go.
Also, I wouldn't worry about either of these technologies going away anytime soon. HTML5 is not going to take over. It'll take some of the market share, not all.
EDIT
Here are some links to other SO posts on the subject:
Which is the future of web development: HTML5 or Silverlight(or other RIA framework)?
Should I Abandon Adobe Flash for HTML5 and ?
Can HTML5 do most of what Flash does today?
This is basically the way I pick web technologies:
do you need to support every available platform made now, in the past and in the future? HTML4 (yes, 4!)
Do you have to make stuff that is not possible with HTML4, and are ready to sacrifice some user base? HTML5
Can you limit yourself to desktop users (no mobile devices) and need a very interactive application (more so than a "website")? Flash or Silverlight
Do you need to integrate with .NET? Silverlight
Are you familiar with .NET (more so than Flash)? Silverlight
Do you want to reach the absolute maximum number of users? Flash
Do you know Flash/ActionScript (more so than .NET)? Flash
Do you need even more features than what Silverlight provides, and can you limit your deployment to intranets? WPF/XBAP
The whole debate around Silverlight being dead is completely flawed in my opinion: those that thought Silverlight would be completely multiplatform really were not connected with the reality: just by looking at Flash it was clear from the beginning that iOS & co. would never support Silverlight.
HTML5 will probably be the real "universal multiplatform" environment (what is HTML4 now), but with all the nightmares we all know of html. If you are targeting desktops and need more interactivity, better tooling, unit testing & co. then Flash and Silverlight will still be the first choice.
Silverlight's user base is quickly coming close to Flash, so between those two it really comes down to the one you know better and the ease of integration with an existing backend.
The fact that Silverlight got a new major version every 9 months until now is just a sign of how much they are pushing it. Now that it's reached a mature stage you can expect to see larger intervals.
Frankly, AS3 is not hard to learn if you already know OOP. It will take a week or so. If you don't like all the frames stuff in Flash, you can create a single frame app and then manage everything from your custom AS classes.
I'm also a .NET developer, and I had no trouble learning AS3.0. Of course, one week is not enough to become an expert (it takes years to become an expert in any field). But if you simply need to create video or mp3 players, create drag and drop basic games/apps to add to an ASP.NET page, it's worth spending 20 or 30 hours on AS3. There are great video trainings out there . Seven or 8 hours training should take the 20 to 30 hours I mentioned. I went for AS3.0 a few years ago, rather than SL, simply because everybody has Flash plugin installed.
AS3.0 is typed (simple types like Number, String etc), but at least it's typed. There are plenty of functions, classes and methods allowing to implement hit tests, drag/drop, event listening (mouse events, keyboard events etc). Really cool and fun language.
Take care.
HTML5 has SVG and Canvas and video.
It's perfectly possible that at one point someone creative is going to create a very nice animation package that generates SVG files. There already are SVG generators there of course, but obviously they're not good enough because SVG and Flash is, so far, never mentioned in the same sentence.
But is ought to be possible. SVG does structured vector graphics, embedded scripting. The things you see done in Flash has to all be possible in SVG. Flash also has this awful notion of frames, which was a major design flaw from day one.
They should have just let you determine that you want to move an object from point A to B along a path determined by a line or curve or freehand path, and that the times of A and B can be anything and not just confined to a particular frame.
Then at playback, the faster your computer is, the better the frame rate ends up being. Slower computer, slower frame rate. As long as the object moves from A to B.
Then there are the bugs and just overall clumsy handling of Flash.
Flash can be done so much better.
So, I think that someone will at one point soon make an amazing SVG animation package that will just crush Flash.
I'm against Silverlight because it's Microsoft. Microsoft means proprietary. They do whatever they want to do. You've already mentioned different version numbers. This means your customers have to have the right version downloaded. You can count on your customers having to download major upgrades, and before you know it their entire .net install needs updating, before you can show your animations and applications.
Silverlight also doesn't work on Linux. It's supposed to, through Novell's efforts with Mono, etc, but in practice, in the field, it just does not work where you need it to.
I don't know if and how well, in practice, Silverlight works on the Mac, but I don't trust it.
Eventually, I think, that future HTML5/SVG (Canvas maybe?) is the way to go. It'll even do 3D using OpenGL accelerated graphics... (but I don't know if that's portable enough).
In the meantime, Flash is your safe bet, and it's almost guaranteed to run anywhere.
I wonder if anyone has created an animation package that outputs to swf files that's better than the Flash IDE. Shouldn't be too hard, given Flash IDE's clumsiness.
Microsoft recently announced a "change of direction" with Silverlight with more emphasis on mobile rather than desktop.
Flex/Flash and SilverL. now are very similar... using webservice for the clientt/server comunication you can work well with both.
Sure, for .NET developer with Visual Studio to use SilverL. is much more FAST and you need C# only.
But, Flash is more available on PCs, also for mobile devices... you could think for Flash if you need portability.

Migrating from Silverlight 2 to 4

We have a moderately complex silverlight based application written in Silverlight 2. Eventually we will move to Silverlight 4. In terms of porting effort, would it be better to to port our app from SL2 to SL3, and then to SL4. Or, should be port from SL2 to SL4 in one step.
Bear in mind that Silverlight 4 is currently in beta and does not have an end user runtime; so upgrading your app to Silverlight 4 right now is not really an option.
I'd go with the SL2->SL4 port directly. SL4 simply offers more, so it's a good opportunity to start looking at your app and making optimizations using the latest.
You'll find that 3 and 4 are more
similar and therefore take around the
same level of effort in terms of
learning curve.
Assuming porting takes you a while,
expect SL4 to be out sometime in Q2
CY10 with or around the same time as VS2010 is released. That should offer you time to
iron out the issues in beta and then
when RTW happens, you'll be nearly
ready with your port.
After RTW, expect a couple of months
for most people to upgrade their run
time. It should happen relatively
quickly given Windows Update, etc. In a corporate environment, it may happen much quicker if yours is an LOB and certain employee groups rely on your app - you have the upper hand in dealing with IT.

Silverlight for the masses, is it time

We are launching a site that is media heavy and looking at using silverlight, since most of our video library is in wmv and from what i understand flash serving still costs a couple bucks.
Is silverlight really adopted out there, I know i use it as well as a bunch of developers for internal apps but as far as a web application is it ready to go, i went through a mac install with safari and had to restart my whole browser to install it, not exactly a great user experience. I also noticed that MS doesnt even use it for http://video.msn.com and also the few sites that have launched get crazy MAC people crying bloody murder , read http://www.itwriting.com/blog/641-mac-users-refusing-to-install-silverlight.html where one New York Times reader said "Nope. Not going to use anything from Microsoft. If reading the NYT requires MS products then, for this reader, goodbye NYT." when asked to install silverlight for NYT site. Tech wise moving forward I like Silverlight and some of the things i can do from a framework / wpf perspective and want to move ahead with it just not sure it's the out there enough yet.
Just wondering what people think out there
I think that if you have a user base that refuses to upgrade from Internet Explorer 6, good luck with getting anything else adopted, including Silverlight.
The thing can be installed more or less automatically just like Flash, for crying out loud. How difficult could it be?
The argument up to now has been, "Flash is already installed on most computers, so it already has high adoption." But that's a chicken and egg problem. How did Flash get adopted in the first place?
The NYT reader just has a prejudice. Clearly he believes that Microsoft is the evil empire. There's really nothing you can do about that. The real question is, how prevalent is this attitude? Certainly it will be common among the Linux/open source crowd, but it's hard for me to believe that this attitude would be prevalent among the average user. If anything, the Microsoft name is a warm and fuzzy for them.
I personally think Silverlight will pick up pace on business applications just because it's much programmer friendly and the fact that you can program it in .NET languages means it is much easier to reuse and maintain your business logic.
However, in terms of consumer application I don't think it can beat Flash, who's got a much larger install base and already used by most major companies. Also, don't forget HTML5, which now has integrated video element supported by major browsers including Firefox, Chrome and Safari.
Despite codec arguments, it is another strong contender, which will squeeze Silverlight's market share even further.
As a user and as a web developer I like sticking to the bare minimum. Like it or not Flash has pretty much become the standard platform for rich media on the internet. Everyone I know has flash to use videos from common sources like You Tube.
Since money seems to be an issue I might suggest Flowplayer, an open source Flash video player. Currently it only supports mpg, mov, and avi, but it's fairly easy to convert wmv to other formats using open source tools.
Here is Flowplayer:
http://flowplayer.org/v2/player/index.html
Here are some simple instructions for converting video:
http://flowplayer.org/v2/tutorials/my-movies.html
The only major sites using silverlight are ones that microsoft either owns, or has paid to use it, and most of the ones that they paid for switched back to flash. The version number may be approaching 3.0, but it is still a very new and immature platform that is not as widely installed as flash (which is pushing 97% of all browsers).
If you are talking wmv vs silverlight, I would go silverlight. If you are talking flash vs silverlight, I would say flash hands down. If you want to be forward thinking, serve stuff up with the HTML <video> tag, with flash as a fallback.
I remember that MLB went from showing those games from silverlight back to flash due to a few issues that didn't get resolve. It work pretty well on the Olympics, but beyond that I can't say how good or bad it is. Do you have any idea what percentage of users have Silverlight installed for their browsers? That might be something to look at.
I've heard that desktop Silverlight penetration is around 30%. Flash is somewhere north of 95%.
Going with Flash seems the easy decision now. I can certainly imagine a lot of Mac users seeing the "install Silverlight" message and saying, "Ick! No!"
In the long run, probably most Windows PCs will have Silverlight. Diehard Mac fans may never install it.
Meanwhile, I've seen more and more people who don't install Java, and who just pass on any site that says to install Java.
Adobe's only weakness now is mobile. They seem to have desktop locked up tight.

Silverlight vs Adobe Air

Now with Silverlight 3 (offline, out of browser stuff), what are the main differences between the two technologies?
There are some significant differences right now in the Beta, no idea if these will still be differences in the release version.
There is no way to hide the window chrome in Silverlight OOB.
No ability to create a notification tray icon.
Air apps can be multi-window, Silverlight OOB cannot.
Air apps have more access to the system, Silverlight apps are sandboxed.
There are differences in the install and update procedures, not sure of al of the details.
AIR gives you access to the file system and a SQLite db. SL3 only lets you write to the file system with user interaction (a Save As dialog) and doesn't have any support for a DB in Isolated storage or on disk.
SLOOB runs in a sandbox still, so you're limited to the same cross-domain issues as a Silverlight app running in the browser.
It's a three way war: Adobe AIR, MS Silverlight and Mozilla Prism.
Read this blog-post and this article. A quote from the second article:
Silverlight is the clear winner in terms of power, but as one of my colleagues pointed out the other day does it matter? His point was that Flash has an incredible penetration rate. According to Adobe it’s in the 99% range. When considering rolling out a new product that requires a plug-in why introduce another barrier to adoption?
and another one from the second:
We then asked of those who answered yes which formats they use. Unsurprisingly, given how long it has been available, Flash leads with 61% of respondents. More surprising was Silverlight’s very small market share of a little over 2%, essentially the same as that of the Real format. Quicktime did surprisingly well, at just under 20%.
As for VOIP support in SL read this.
Read up on Prism here.
In addition to what Dave said, Silverlight seems to be missing device support (microphone and web cam).
One thing I'd like to point out, that nobody else has mentioned is (and I'm not picking favorites when I say this, as we use Air/Flex for a project at my job):
Adobe doesn't have the talent needed to create quality run times and IDEs for developers. Their ideas are fine, it's the execution of those ideas that I doubt. I think we can all agree that Visual Studio is light years ahead of any IDE out there. Quality wise I'd even go as far as to say that VS2005 is better made than anything on the market (it's now 2011) 6yrs later.
If you feel Flex/Air meets your needs better, my all means, go with it. But if feel either platform will give you what you want, I'd say Silverlight wins every time. It's more mature, it's substantially more stable.
Our biggest headache for our commercial app is that Air does not managed garbage collection well, for the past year and a half, our app has suffered from slowdown, the only resolution is to do a nightly reboot on a kiosk because we nest objects inside objects, once you hit the 3rd nesting, it seems Air cannot flush those objects correctly, Adobe is will aware of it, and considering how much time has passed and all the newer versions, Adobe has no resolution. That is the sign of poor run times and Adobe developers who just aren't very good. Despite the fact people love to bash MS, these days their platforms are pretty reliable is reliable overall, especially their .NET runtimes. Adobe feels like Microsoft circa 1997, they're years away from offering reliable solutions.
PS: I'm sure a couple koolaid drinking Adobe devs will be down voting this answer.
Assuming only minor changes are necessary to run a Silverlight app on the desktop, the differences are in implementation details. Silverlight is a .NET-space framework based on WPF. Flash/Flex/AIR are proprietary Adobe products based on ActionScript.
In terms of capability, they seem to be roughly equal with complementary strenghts and weaknesses. Example: SL3 will have GPU and pixel shader support. The latest Flash as Inverse Kinematics. Different strokes, etc.
From the users standpoint I like the Silverlight installation process a lot more... Specially on the Mac - Air app installation is unnatural (to many clicks and processbars) but oneclick Silverlight install is nice :)

Resources