If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Lulz. Obviously not real-world test scenarios then. But keep clinging to those benchmarks all you want - they were specifically intended for the non-developer type to gush over.

Honestly son, I don't care who you trust - I am the guy in the trenches who has to make this stuff work. And Android has no hope whatsoever (EVER) of ever matching the same performance in RetroArch that I get on other platforms like -

I would like to put you on notice and remind you that you are talking to a guy who has ported to all those platforms and more - you are not dealing with some purported 'developer' that 'just' made some kind of low-key game, got it working on Android, got 6fps and then patted himself on the back and told himself 'OK, this is going to run just swell over two iterative generations or so. So honestly, I think I know a thing or two about how these platforms stack up - far better in fact than your 'pie in the sky' benchmarks would ever indicate to you.

Honestly, your 'pie in the sky' benchmarks traverse you down one optimal render path and that is it. They don't tell you jack all about CPU performance, driver issues, shitty blitting (another Android trait), shitty garbage collector stalls, and on and on.

Thanks Captain Obvious for pointing out stuff to me that I already know. However, it seems you don't even read the stuff that you are selectively quoting and Googling - notice the caveat there that says 'THIS RELIES ON HARDWARE SUPPORT'.

And guess how 'swell' that hardware support is up to now? Exactly one Google Nexus device and as for the rest - shit all - that is what.

And guess what? Even the '40ms' figure they are now holding up as an 'ideal target' is pretty crappy compared to the kind of audio latency you can get with CoreAudio on iOS. So even on that one special phone where the 'fast SL mixer path' goes into effect - it is still shit compared to iOS.

Like hell. Dianne Hackborn quite honestly doesn't give a shit about performance, or anything that gets in the way of her precious 'framework' and the way it ought to be 'properly used' (note - some ideological claptrap and 'good design' principles according to a couple of demented Java ideologues).

At this point you pretty much sound like an end user. 'Project Butter 60fps locked interface' - here is the deal son - most of the time your precious Android devices don't even have screens capable of a 60Hz refreshrate - as in the case of the Galaxy SIII - as in the case of the Galaxy Note 2 - as in the case of the JXD S7300 - and we can go on and on. Now, surely, those first two devices I mentioned there represents a pretty big slice of the overall market, does it not?

Also - the fact that those devices 'lie' about their refreshrates means that you can not even rely on the SDK-supplied 'GetRefreshRate' function - in 75% of all cases it reports a bogus number (because '60Hz' looks better on some techsheet than '58Hz' or '50Hz' now does it?

Now it gets even worse when you want to heuristically detect the refresh rate and time your game/emulator correctly according to it - good luck doing that with a garbage-collecting OS.

Thanks for that Captain Obvious.

However, you might just want to get yourself clued up a bit more - it isn't just that it can't compete with a PS3/360 -

IT CAN'T COMPETE WITH AN XBOX 1/WII.

How do I know? I develop for the aforementioned boxes, and I can also test the same software across all these devices.

And guess what?

Yoshi's Island running with SNES9x Next runs at fullspeed on a Nintendo Wii?

Now you go and rationalize that all you want to yourself while an iPad 2 plays that same game just fine. Seriously, stop drinking the Java/Google koolaid and admit that the entire platform sucks. I have the facts, I have the ultimate benchmark (RetroArch) that proves that this platform sucks because I can run the very same software with the very same frontend codebase on all these platforms - if a platform doesn't deliver on relatively tight syncing, it is reflected in its runtime performance. And guess where Android stands in all of that? Right at the bottom of the foodchain - a Cortex A8 Android tablet performs even worse than a Nintendo Gamecube, thank you very much.

Now please - next time you try to 'correct' somebody, make sure you aren't talking to somebody who already went there, done that, and has gotten the T-shirt.

Uh, I guess a little respect is out of the question in a pissing match... My 2 nickles.

Programming on a limited number of platforms, I still have dealt with hardware limitations. I learned how to program in a scalable way decades before most companies gave two turtle shits about it. Now that people are going cross platform they're finally learning.... only took them like a couple of decades to get to that point. So what the point?

Work with what you have and make it 733t on whatever it's running. I was forced to work on Windows shitty crap for years, I was spoiled before that. Back in the days before 3d we had some fun I tell ya we had fun!

Oh and I hope the ouya gets better hardware those specs are lower than my phone at this point.

But keep clinging to those benchmarks all you want - they were specifically intended for the non-developer type to gush over.

Benchmarks are intended for non-developers? I am a full time developer. You don't think the guys at AnandTech or the guys at shootout.alioth.debian.org are techies catering to other techies? Of course they are!

I realize that benchmarks can be biased and manipulated and you need to take them with a grain of salt. However, benchmarks still have more weight than emotional rants. Particularly, when it's multiple benchmarks written by different groups that seem to be roughly neutral and are administered by seemingly neutral sites.

Originally Posted by Squarepusher

Thanks Captain Obvious for pointing out stuff to me that I already know. However, it seems you don't even read the stuff that you are selectively quoting and Googling - notice the caveat there that says 'THIS RELIES ON HARDWARE SUPPORT'.

I definitely read that. If latency can be fixed with hardware changes that would suggest that Android/Dalvik/Java isn't an insurmountable problem.

Originally Posted by Squarepusher

you are talking to a guy who has ported to all those platforms and more

You may be an extremely accomplished individual, but I'd prefer we judge arguments based on their own merit rather than the credentials of the author.

Originally Posted by Squarepusher

And guess what? Even the '40ms' figure they are now holding up as an 'ideal target' is pretty crappy compared to the kind of audio latency you can get with CoreAudio on iOS.

Link? I don't see the Android team mention a specific latency target.

Originally Posted by Squarepusher

Seriously, stop drinking the Java/Google koolaid and admit that the entire platform sucks.

This kind of emotional language undermines your credibility as one who makes calm arguments of reason and logic.

Sometimes Java/C#/Scala are too high level and sometimes C/C++ is too low level. In other cases, I prefer other languages entirely.

I have done a *lot* of high performance, mostly server-side work in C++, Java, and C#. Of course, Android's Dalvik is very different from desktop Java, but I really like Java as a developer and I feel it does what I need it to do for many projects.

It is extremely common for me to hear people bash Java who are completely uninformed. A lot of people had some bad experience with a Java browser applet, or read bad things about Java in the news, and just make completely uninformed negative comments about Java, even in cases where Java works really well.

C/C++ is way behind Java/C# in language design and Java/C# are also way behind Scala in language design as well.

I'm not convinced that Java or something Java-like is completely inappropriate on a client device like Android. I do like that Android supports C/C++/Renderscript development as well.

Running GLBenchmark on anandtech android smartphones review it seems that the performance isn't that behind Apple.

Your benchmark is useless - this is about garbage collector stalls pummeling you as time goes on. It doesn't matter how much FPS you get in your 'pie-in-the-sky' benchmark - what matters is if you can sustain that framerate, and the answer is 'hell no' on Android.

Compared how easier java is compared to objective-c (and how popular), it's a good tradeoff.

Java is a toy programming language and anybody who sticks to it and claims it can compete with C/C++ either doesn't have what it takes to program in C/C++ or they are just an inferior programmer. Period.

As a programmer you are a bad joke if you 'prefer' your toy programming languages and the 'toy' managed environments they run in. Sorry but facts are facts.

Even Epic says the same now in relation to Unreal Engine 4 - 'we moved off those toy programming languages' - it's all C++11 again with no scripting language in sight. So if you are one of these 'game devs' nowadays whose only claim to fame is that they can 'buy' a license to a pre-existing engine and make something happen in there - what is Epic's recommendation? 'Learn C++11!'. Sorry Java/C# guys but you backed the wrong horse and educated people are waking up and smelling the coffee - and it stinks- time to return to the tried and true programming language where you can get something actually done - note -that doesn't include C#/Java/Go or any other 'toy' language.

As those guys at Epic put it, we'll take a 10% performance hit if we gain 10% or more in productivity.

Funny, because those guys at Epic until recently still have only released games on Apple hardware.

Performance isn't everything and Android is the number one operating system.

So was Windows 9x. But it was still dogshit all the same - even Microsoft silently acknowledged that when they were working on Windows NT concurrently. That is what needs to happen to Android - an NT equivalent needs to be built (and badly) and this entire thing should be thrown in the trash as soon as possible before the 'ecosystem' becomes even shittier.

People aren't complaining of the performance and most games run both on Apple and Android just fine.

Tell that to the Ouya devs who are being pummeled by garbage collector stalls right now (Google it).

This is the first time on Earth that a 'games console' is running in a Java VM with a garbage collector - there is a reason for that.

This is antithetical to what a games console has been since the days of the Atari 2600. It has always been about being able to target a fixed-spec console and having an SDK that allows you to go very low-level (to the point where on PS3/360 you can bypass any higher level graphics API altogether and just go straight for manipulating command buffers and passing that to the GPU). It has always been about being able to program at a lower-level so that you can get optimum performance out of it.

None of that is possible with an Android-based console. There is no GPU blitting support in the NDK - audio latency is shit - everything is a Java service - there is no way to do direct input - the GPU drivers are a cottage of bad hacks to work around Android's even worse hacks - you can't even run 'true native code' but you always need to shoehorn your native code into a dynamic library and to load that inside a 'wrapper Java app - it is simply a total non-event in the performance stakes.

Oh and note - the OS PREVENTS you from trying to do any of these things that you absolutely need for best possible performance - try to ask Dianne Hackborn about how to do input/audio/video without going through any of her crap Java framework stuff and see the response you're going to get.

If Android really were that bad we'd see choppy performance of a game on Android and buttersmooth on Apple.

You are seeing exactly that in most games which is why most iOS games take about a year and a half to ever reach Android (if ever) - and in the few cases they do (because Android is still a barren landscape for games compared to iOS and developers simply do not find the thing attractive at all), it is always an inferior port. It's a combination of the GPU drivers being shit and full of hacks to accomodate Android (which is also shit and full of hacks) + a shity garbage collector ruining your framerate + lots of devices with sub-60Hz screens. All of this translates into a horrible platform for games. There is nothing worse - period - for games to have as an OS than Android. A Nintendo Wii will comfortably 'beat' a Note 2 in the CPU performance stakes thanks to this absolutely disastrous OS - you simply can't get a stable and moderately high FPS out of this thing without being jammed in 'garbage collector spin alley'.

And the reason they don't beat up on Android is because it's Google and because they would sell their mother for a nickel as long as the pimp is Google. That is the amount of Scientology-like cultism that surrounds this company, and sadly the pathetic nerds will follow them right off the cliff. That much seems a given.

Java is a toy language? HAHAHAHAHA. So I guess you're a C++ fanboi who thinks that managed languages have no reason for existence. Another of those guys who look at this table http://www.cultofmac.com/178162/appl...-earth-report/ and think the whole world is going to shit with Java so high on that list. I guess it's so popular because people are idiots, right? Using a simpler language doesn't make you inferior but it may make you more productive. That is why Java is so popular. You sacrifice some performance for easier code writing. Plus it's got a saner syntax than C++. Also making an application that works on multiple platforms without any work is pretty useful sometimes.

The idea with UE4 is that you can use Kismet to create your mod and only if necessary use C++.

Initially there was no NDK so coding in Java was mandatory for Android. Seems to me that Google is really promoting Java. Do you really think they are idiots? They use it internally in a lot of stuff, even high performance stuff. The performance might not be perfect now but as the DalvikVM will continue to improve an application will get better performance by doing nothing, just running an updated OS. Really curios how that will happen with a C++ application when the compiler improves. Recompile everything and deploy it again on all machines? There are advantages in both types of languages (both managed and unmanaged) but ignoring one just to say that the other is much better is just plain stupid. Do you really think they invented Java just because they had nothing to do and then became popular without any merit? Or your just a C C++ fanatic who can't stand these new toy languages where programmers code circles around an old man stuck in the past? And yes having a garbage collector makes one more productive. And that is not the only advantage of Java. In my case I've already written the application in Java because I've started before C++ was available in NDK (actually it was but it didn't have the standard library and couldn't use exceptions) and I could rewrite a few parts in C++ through JNI only that writing them in C++ will take more time than just waiting for the next gen phones to catch on. So instead of focusing on rewritting in C++ I focus on adding functionality which makes happier customers. Which is what counts. See they don't care in what language do I write in, if it's a toy or not.

Since most parts of an application aren't performance critical, there is no use in using a lower level language like C or C++ just for the sake of it. Use Java or something even higher level and for really critical parts use C++. But most of the times you'll find out that using C++ actually isn't necessary and doesn't always get you so serious performance improvements. The guys who write the VM aren't complete idiots so you know.

Man, the mental insanity is just astounding - where to begin?

Initially there was no NDK so coding in Java was mandatory for Android. Seems to me that Google is really promoting Java. Do you really think they are idiots?

Yes, I think that Google (or more specifically, Dianne Hackborn and the merry band of 'engineers' that comprise the Android outfit) are totally technically incompetent 'newfangled broprogrammers' who can't program their way out of a paper bag (or in this case, a crappy product they bought from some failed startup and which continues to be the bane of end-developers' existence to this day). Thanks for asking. This is a new generation of technically incompetent 'brogrammers' that the shitty educational institutions are pumping out now, and it's all about 'Web, web, web' and shitfangled web technologies - that is their 'big priority'.

What we have these days is a new generation of programmers that is a ticking time bomb waiting to go off once they start touching codebases that people with actual decent degrees once worked on. It is very clear that there has been a steady process of degeneration going on at the programming schools, and I'm sure this will be carried to its logical conclusion over the years as the degeneration process becomes starts quickening.

What is sad is that the people who comprise this generation are not the slightest bit embarrassed at just how pathetic they are to their peers from even a generation ago. But that's degeneration for you.

Really curios how that will happen with a C++ application when the compiler improves. Recompile everything and deploy it again on all machines?

Oh, recompiling - so 'scary' and so 'unfathomable'. Spoken like a true Java zealot. Man, I wonder how you people would have ever held a job back in the '90s with your insane claptrap.

Do you really think they invented Java just because they had nothing to do and then became popular without any merit?

The company that invented it has gone bankrupt and has been bought out by Oracle. That Oracle of all companies bought it speaks volumes as to what kind of garbage it represents. As soon as something hits the 'enterprise' world- you can be guaranteed it has been a failure everywhere else. See COBOL and Ruby on Rails for evidence of that.

And yes having a garbage collector makes one more productive.

Ie. 'I don't have to worry about doing delete/new - I'll just push all of that shit onto the precious Dalvik JVM heap and just let it do its GC stalls at a periodic basis'.

Sounds great bro that you don't care about doing it right and that you misequate that with 'productivity'. I just call it being a shit brogrammer who doesn't give a damn.

In my case I've already written the application in Java because I've started before C++ was available in NDK (actually it was but it didn't have the standard library and couldn't use exceptions) and I could rewrite a few parts in C++ through JNI only that writing them in C++ will take more time than just waiting for the next gen phones to catch on.

Oh, so people need to buy a 'next gen phone' to play your 'totally awesome' 3D Space Invaders clone at fullspeed huh? And all of this because you can't be arsed programming it in any other language other than Java? So in other words - the technical incompetency of Oracle, Google (and you and your laziness) becomes the enduser's problem. That just sounds great.

And of course, it absolutely HAS to be Java because you're a zealot like that. I bet if you had your way you'd even write a Java VM in Java itself just because it's 'cleaner' that way or some shit like that.

So instead of focusing on rewritting in C++ I focus on adding functionality which makes happier customers. Which is what counts. See they don't care in what language do I write in, if it's a toy or not.

Yes, I'm sure they will appreciate those 'great framerates' you're delivering them and that you just tell them to 'buy a new next-gen phone' if they want to run it at a more tolerable framerate. That just sounds great. I'm not sure what kind of 'features' you'd have to throw at them to get them to stop complaining about you not delivering adequate performance though.

But hey, I know plenty of people in the emuscene who put their 'language ideologies' before what actually matters - I am familiar with this kind of crackpot thinking.

Since most parts of an application aren't performance critical, there is no use in using a lower level language like C or C++ just for the sake of it. Use Java or something even higher level and for really critical parts use C++.

No, just no. You are absolutely insane if you think that Java is anything anyone should actively target. Java is something that people use these days ONLY when thinking about Android apps. That and your usual enterprise and accounting programming stuff (but hey, Java is one hell of a stepup from COBOL I suppose - so they don't really have a frame of reference anyway). For anything else, Java has no shelf life anymore. It is a failed language and it never delivered.

This happens all the time BTW on any device - hook up your Android device to your PC and type the following -

adb logcat stderr:* stdout: * *.S

Then run the logger from the commandline and you'll be able to see whenever it starts thrashing your runtime performance. It is not a pretty sight.

Most of the time the GC stalls get enacted by other concurrent services running - which is a testament to how 'seriously' your average Java dev takes performance and just goes to show how their failings become other people's problems as well when their shitty 'weather app' or 'clock service' is being run with your program at the same time.

Ironically enough, the worst 'GC' offenders happen to be Google's Play Store services - but then again with Google the emphasis is more on 'datamining your ass' than it is about providing you with a valuable service or even decent runtime performance.