Wednesday, May 20, 2009

Explore VisualVM

'VisualVM' to be simple, it is a graphical interface tool helps in profiling J2SE applications. It is a very lightweight tool which integrates many JDK tools and provides a single stop profiling and monitoring capabilities. While there are some industry standard tools already in use, I am here comparing the tools which are actually developed for different purpose altogether but have some features in common. The comparison is with HP Diagnostics J2EE Probe!

I have considered a few tabs(features) of HP Diagnostics J2EE probe so that it can be comparable with VisualVM. Mostly HP Diagnostics J2EE probe is used for profiling J2EE applications.

Parameter
VisualVM
HP Diagnostics - J2EE Probe
Initial foot print
Default monitor shows minimum CPU usage with both visualvm and j2ee probe on the same system



System
Good system performance metrics are shown in the probe while these are not completely available in default visualvm (we can extend if we like..)



Heap
VisualVM Heap graph is more informative at a glance.





Visual GC
Probe is showing some GC activity while it is not visible in visualvm. May be as the GC collections per sec value is too low to be visible on the graph.



Threads
Thread information is good and almost the same apart from an extra element - 'threads created per sec' present in probe. (this is useful during load tests)



Threaddump
Thread dump gives info. related to all the threads where as we can have an option of selecting a specific thread and get its trace in probe. I think this is useful as thread dump increase largely with time and load.


VisualVM After 1 day
Tomcat has been running since 1 day and VisualVM's Profiling is still going on. The changes observed are very minimal increase in CPU usage(either might be because of Tomcat or VisualVM). There is an increase in Heap usage and also observed some GC activities. A forced GC has been triggered later.(see graph 2)





Next Steps..

1. Extending VisualVM to have http/xml interface so that it can run at one place but can be viewed from different locations. Also this feature helps to embed VisualVM's output into any tool which can parse XML. -- VisualVM ~ VirtualVM
2. Extending to J2EE

want to see what other visualvm explorers are thinking along with me -> http://java.sun.com/community/javavisualvm/

Sunday, May 3, 2009

Retrieving Information

Information retrieval deals with searching for documents, for information within documents and for metadata about documents, as well as searching relational databases and the World Wide Web. This involves a huge overload if we go in a traditional way. The advanced information retrieving systems automate the extraction process and personalize per user - search engines are one of these systems.

Below explained is very basic and simple information retrieving mechanism for small scale systems.

File System here stores a wide variety of documents/files and in a large number. This file system is like a central data repository that gets added on with the information.

Indexer is process that operates on the file system and maintains the index and also synchronize the index with a database management system periodically.

The users access the central repository through a web interface. User requests for a file will be processed by operating on the DB which normally very capable of operating super fast on huge data (indexed info). After retrieving the relative indexes the user will be presented with search results. When the user selects a result, the request processor fetches the file and maintains a local copy and gives this dynamic file link to the user.

There is a Logical model that sits on the server and which observes what is going on.. This logical model is a process that keeps track of the type of user queries & the retrieved index results and corresponding local copies maintained as the most wanted result. There is tag cloud on the user interface that is controlled by this LM, which shows the file tags based on the above factors and provides the user a personalized result.


Saturday, May 2, 2009

ad online - add sense online


With increase in usage of Internet and wide variety of online services, adevertising-online is making profit(sense). This way of promotion has a very vast and fast reach with ads on search engine results pages, banners, Rich Media, Social network sites, blogs and the list goes on.. This immediate publishing of information added on with intellegence really attracts audience with the ad content falling in the context what the end user is looking for -- contextual ads on search results page.
All these ad'ded advantages have the challenge - how the user respond to the add. This is how the payment s from traditional advertising. Below shows in what way the ads are being payed.

CPM (Cost Per Impression) is where advertisers pay for exposure of their message to a specific audience. CPM costs are priced per thousand impressions, or loads of an advertisement. However, some impressions may not be counted, such as a reload or internal user action. The M in the acronym is the Roman numeral for one thousand.

CPV (Cost Per Visitor) or (Cost per View in the case of Pop Ups and Unders) is where advertisers pay for the delivery of a Targeted Visitor to the advertisers website.

CPC (Cost Per Click) is also known as Pay per click (PPC). Advertisers pay each time a user clicks on their listing and is redirected to their website. They do not actually pay for the listing, but only when the listing is clicked on. This system allows advertising specialists to refine searches and gain information about their market. Under the Pay per click pricing system, advertisers pay for the right to be listed under a series of target rich words that direct relevant traffic to their website, and pay only when someone clicks on their listing which links directly to their website. CPC differs from CPV in that each click is paid for regardless of whether the user makes it to the target site.

CPA (Cost Per Action) or (Cost Per Acquisition) advertising is performance based and is common in the affiliate marketing sector of the business. In this payment scheme, the publisher takes all the risk of running the ad, and the advertiser pays only for the amount of users who complete a transaction, such as a purchase or sign-up. This is the best type of rate to pay for banner advertisements and the worst type of rate to charge. Similarly, CPL (Cost Per Lead) advertising is identical to CPA advertising and is based on the user completing a form, registering for a newsletter or some other action that the merchant feels will lead to a sale. Also common, CPO (Cost Per Order) advertising is based on each time an order is transacted.

Cost per conversion Describes the cost of acquiring a customer, typically calculated by dividing the total cost of an ad campaign by the number of conversions. The definition of "Conversion" varies depending on the situation: it is sometimes considered to be a lead, a sale, or a purchase.

CPE (Cost Per Engagement) is a form of Cost Per Action pricing first introduced in March 2008. Differing from cost-per-impression or cost-per-click models, a CPE model means advertising impressions are free and advertisers pay only when a user engages with their specific ad unit. Engagement is defined as a user interacting with an ad in any number of ways.

All these types needs user attention. The most common type of adds include Floating ad,Resizing ad, Progressive ad, Wallpaper/background ad,Tricky banners,Pop-up/under,Videos,Maps,streaming videos etc.,