Thursday, March 19, 2009

Performance Regression?


  I was under the impression that the latest release made NewsRob so much faster that performance shouldn't be my top priority anymore. I also got some user feedback that performance is now ok, but I got some comments in the Android Market now that say otherwise:

  Can anybody confirm that and give me details? Preferably someone with the tendency to communicate in full sentences (pl)?

  If I don't hear anything back I'll assume that those were clown comments and I will work on bugs and functionality instead. 


  1. Hey Mariano

    Like the app but would have to agree it can be quite slow to download articles over wifi to the SD card e.g. in the last 5 minutes Ive downloaded 4 articles to the cache out of 50 so its going to take some time to download them all! So would agree its quite slow......

  2. .....4 articles downloaded in ten minutes.........

  3. Hey Beej,

    it's a bit hard to comment on that in detail without knowing the actual pages you're downloading. So let me try to comment in general terms.

    First the bad news. The next release includes tremendous performance improvements, but to the UI and not the downloading.

    The downloading takes so long, because NewsRob downloads the whole web page including all the assets (images, stylesheets). That takes a serious amount of time, but should be done in the background so that in most cases you don't have to watch it downloading.

    Having said that, there might be one thing that can be slow. Going through the web page and finding all the image tags is done using Java regular expression. This burns CPU, but shouldn't be too bad, except when I hit a bug/feature in the RegExp implementation. Then the regexp library uses 100% cpu for a long time.

    To the best of my knowledge this doesn't happen anymore as I meanwhile use less "sensitive" regexps. If you use for example netmeter to look at the CPU usage and you see 100% cpu over an extended period (>30 seconds) of time while downloading, please let me know: I would need to know with which page this happens, but I can explain to you how to find what page that was.

    Two things on the bright side...

    Not in the next release, but in upcoming releases I will likely show more information about the download timing, so that it is easier to judge if it is worth the effort to download the feed.

    Also you will be able to define on a per feed basis if it should be completely downloaded (the web page including the images, stylesheets and the stylesheet's images), partially downloaded (the feed view and the images) or no downloaded.

    So to make a long story short:
    - Downloading of full pages takes time.
    - You will be able to fine tune the download behavior in the future.
    - If you see 100% cpu usage, I will fix that.

    Does that work for you?

    Thanks for speaking up Beej! It's very much appreciated.

  4. So it seems that the 4th article was pretty slow.

    The articles are downloaded in sequence, as are the assets of one page. So if there is a web page that has one slow image the whole web page is slow.

    I could in theory download in parallel. It would be easy to implement that, but it is just a mobile phone. It is not such a good idea to task it so hard it will hurt the foreground process performance (UI will get slower) and the battery will get hotter as well as the battery be run down earlier.

    So if, in the future, you see that there is a particular feed that is always slow, you may want to disable downloading for that feed.

  5. ....31 now.... :-)

    Ok, cool, might be worth having a look at the download speed though. Maybe other users could corroborate the speed as obviously Im one user so any other users expericing slow downloads could help to.

    Showing more info would be good for downloads though.

    Id actually like the option to just download the text for offline viewing which would greatly increase speed and would still be useful.

    Also I dont mind if the speed is slow but would VERY MUCH like the ability to schedule a download time rather e.g. 22:40 as opposed to every 4 hours. Scheduling would be great!! If I could schedule then I could download overnight and speed would not be a problem!

  6. ...50...!!

    Hit 50 now, wouldnt mind if this was an overnight process as thats fairly realistic.....

  7. First of all thanks again for speaking up. That we can now work through the issues is a direct result of that as opposed to leave a anonymous comment in the Android Market.

    Let's wait with getting in many more users to compare download times until I show the download information in the application. Then it is easier to make the comparison.

    Most of the time you shouldn't see the download times as it works in the background as stated above.

    Your wish will be granted. I already discussed exactly this use case (scheduling at certain times, in certain places, under certain circumstances) with one of the Locale developer and will implement a Locale integration in the not so distant future.

    Ok, have a good night.

  8. Cool, Locale integration would be good.

    Still prefer an option to schedule within the app though as Locale requires GPS (more efficent) switched on which is a bit of a drain on battery... (although I havent quite got to grips with Locale yet so you may have a cunning solution)

    By the way, I havent left any feedback on the app yet but will leave a proper rating for you as this apps shows loads of potential and at the moment Id use it over Greed and PureRSS....

    Two suggestions, please ignore if you want, might be worth putting a prominant link to the blog in Market or on the main page of the site as its not obvious the blog exists withough reading the website....

    Also if the app had RSS in the title I would put money on it that you would get more downloads e.g. "NewsRobRSS" :-)

  9. Yes, there is a solution. You can use Locale without GPS. Just tell it a the time as a trigger and you are good to go.

    The description in the Android Market is limited to 325 characters. When I want to add I would need to get rid of the description of two features ;-)

    What about that, when I redesign the website (which will be soonish) I will add a link to the Blog right at the top very prominently.

    You could be on to something with NewsRob RSS ... Did you see that it is meanwhile called: NewsRob (Google Reader client) ... You think RSS is better as Google Reader client?

    Thanks again for your feedback. It's quite useful.

  10. I will await the Locale feature....! no pressure :-)

    The only reason I think adding RSS into the title is that when I was searching for an RSS reader its was easier to identify one from the app title.

    The first app reader I downloaded was PureRSS because it had a high rating and I was sure that having used the search term "RSS", that when all the results were returned it was more likley to be an RSS reader.

    I only found Greed and your app from links in forums, never looked or noticed them on a Market search as you get loads of apps returned and its not always clear what they are as the app title can be ambigous, sticking RSS in might help people notice it!

  11. Ben, ok that makes sense.

    Unfortunately the name length is limited so I couldn't just add "RSS". So I changed the name now to "NewsRob (Google Reader / RSS)".

    Thanks for the explanation and the tip.