Tuesday, March 18, 2008

And the sexiest browser is...

So, I often run into a Firefox ad that says 'Download the sexiest browser', and pretty often it makes me laugh - do people really fall for that kind of commercial and download Firefox? Hmmmm, don't think so... There are many good reasons why a user would download and use Firefox, but that particular one is definitely not among those. However, that ad is intriguing and makes us think about our habits and our approach to software. How do we judge the software we use? Do we require functionality, precision, fancy interface, power, simplicity...? The fact is that users want more than white letters on a black background. In fact, the focus on the interface has never been stronger than today - people don't just want their computer to do the task, they want it to look good while doing it!

Back to Firefox ad... There is a simple test to determine if Firefox is really the sexiest of them all - compare the screenshots below and give your vote. Please try to remain impartial, as we're not judging adherence to web standards or browser's functionality - just the looks (no, the brain behind that beauty is of no concern here ;). So take a good look and pick your favorite - let's see who'll win the prestigious title. Since this is a beauty contest, I dressed up the girls in the same clothes, let's see how they wear it :)


1. Firefox - This is our contestant number one. Although it possesses an undeniable appeal, I wouldn't declare it too sexy. You either love it or don't understand what others see in it. (Meg Ryan?)

2. IE7 - simple and sleek. Everything is in place, but it does leave a certain sterility impression. Cold beauty... (Nicole Kidman?)

3. Flock - lusty lips and big hips - this one makes you sigh... (Pamela Anderson?)

4. Opera - luxurious and attractive blonde. Can drive you nuts... (Marilyn Monroe?)


5. Safari - gorgeous black beauty, almost irresistible... (Halle Berry?)

6. Avant - flashy and wild... you probably wouldn't know what to do when around her... (Madonna?)

7. Maxthon - an Amazon woman in an evening dress... Be careful... (Catherine Zeta Jones?)

8. K-meleon - innocent and yet seductive... (Renee Zellweger?)

9. Hydra - I must remain impartial, remember? However I can't resist mentioning Monica Belluci here :)

Please visit http://hydrabrowser.com to take this poll (I've been trying to add a poll to this blog directly, but didn't succeed to find a decent one, sorry folks :(

Saturday, January 12, 2008

Hydra - Memory Wars

Well, these first few weeks since I made Hydra public pretty much have shown me the way Hydra should develop in the future. First and foremost - reducing the memory footprint. I am running a battery of tests (using memory profiler found at http://memprofiler.com/) to discover where all this memory goes, and for now discovered two important things:
1. there's not much I can really do about it, as Garbage Collector really does its work rather well and doesn't allow messing around much;
2. I can achieve some effect by regularly reducing application's working set and thus swapping memory - in fact, that's exactly what Hydra already does when minimized, and achieves great results in doing so (reducing memory consumption from 120 MB to 16MB, or 6-7 times...).
I'm not entirely happy with both statements, and I'm really frustrated with the current state, so in the next couple of weeks I am going to battle and hopefully will reach some acceptable level of memory consumption. I'm aware there are a lot of improvements I can make in code itself (especially regarding string handling, where I have the option to use string builder more often, instead of allocating strings directly, but I somehow doubt it'll add some significant improvements over the current state of things). I'll also try to document my findings here, since it might be of some use to my fellow programers. In order to track progress, let's document the situation as it is, before any of the optimizations took place.




This is the image taken immediately after Hydra is started, picture speaks for itself... Hydra's working set occupies 54 MB of RAM.



Here is another screenshot - this time there are two open tabs. Performance penalty is drastic, as each loaded tab adds incredible 25 MB load on application! Microsoft warns about the webbrowser control as insatient memory eater, but this is way to much...



And now the incredible change, as Hydra is minimized, the working set gets freed up - the result is amazing - from 102 MB to 7 MB in a second! Of course, this is rather elusive, as the application will request this memory back again once it gets reactivated.
Much more important information about the memory consumption can be obtained from the PerfMon tool that can be run from the Run command (Start->Run>>Perfmon>>OK). In order to track a process using Perfmon, right click the counters list and choose 'Properties'. Click on 'Add' button, and then under 'Performance object' select 'Process' instead of 'Processor'. In the list of active processes choose the process you wish to track. In the 'Counters' section choose 'Working Set' and 'Private Bytes' counters and add them to active counters. In my case, I decided to track Hydra, Firefox and Internet Explorer (you'll notice that IE has significantly larger values than Hydra and Firefox, in its defence I can just say that its session was quite long, and it's rather natural for an app to accumulate more memory usage when it runs longer).



Here you see the results - Hydra is losing when compared to Firefox, while it has an advantage relating to IE. In fact, Hydra would take about 5-10% more memory than IE under the same circumstances.
Well, this concludes part one of this great saga, I'll update you on the progress as it goes :-)

Friday, January 11, 2008

Is it daily or...?

When I first planned to publish Hydra over at hydrabrowser.com, I thought I'd be having enough time to write about it at least every couple of days (hence the ambitious headline :-), however, as usual - the truth is somewhat different. I hardly have any time to publish new articles on the site itself, and yet alone to write the blog.
Hydra advances, and I am proud to say that even at this stage it represents a powerful (and surprisingly stable) piece of software, but as the time goes I am beginning to relize how difficult is to keep track of all the things I should do, correct, add and change in the code to really make it work the way I intended from the beginning. I hope that in the next couple of months things will sort out a bit, and that I'll get this blog started properly, as I planned from the beginning. In the meantime, download Hydra and have your say about it...