The Infosys Labs research blog tracks trends in technology with a focus on applied research in Information and Communication Technology (ICT)

« February 2011 | Main | April 2011 »

March 31, 2011

An Introduction : Markov Model

In the field of computing, 'pattern recognition' is a multi-facet instrument to achieve distinct goals.Be it the field of Gesture- Speech-Handwriting recognition or Statistical Software Testing or Software Reliability prediction  it has always proved the most concrete method to empower the field of Artificial Intelligence.


Markov model is the most exploited technique for 'pattern recognition'. The core principle of Markov model "the future is independent of the past , given the present" highlights the basic feature of it. A  Markov Model , for any selected system , is the relationship among all possible states of the system.This relationship is basically depicted through the transition paths, rate of transition between those states and the probability of the system being in any of those state.And with this relationship modeling the next state of the system can be predicted.


For an example System XYZ can be either in ON or OFF state then the markov model will be :

markov.pngHere the λ denotes the rate of transition from ON state to OFF state.So the probability of the system to be in ON and OFF state can be denoted as P_ON and P_OFF respectively.And these probabilities decides the prediction of the future states.


Markov Model has already proven its' utility in the field of gesture recognition, speech recognition , handwriting recognition , statistical software testing , predicting the reliability of the system ,and other numerous applications. So Markov Model can be a promising modeling technique to enhance the existing technologies.


With the increasing complexity of systems and inability of Markov model to model all aspects of the system , more sophisticated and exhaustive models like Hidden markov model , Hierarichal markov model and Logical markov model etc are created. This clearly reflects the extendible nature of Markov model.

March 1, 2011

Important Perfmon Metrics for Identifying the Memory Related Issues

Identifying Processor related Issues" (posted on January 13, 2011), in this blog I will discuss on some of the Perfmon metrics that will help in identifying memory related issues.

To start with basic memory bottleneck analysis, if we consider the memory counter "Available Mbytes" which represents the amount of Mbytes available/free in physical RAM, then counter value less than 15% to 20% of available RAM would indicate a problem and you may need to increase the RAM size.

Monitoring Dot Net CLR memory counters will also help in identifying memory related issues. "% Time in GC" counters represent the percentage of time taken to perform the last garbage collection. During Garbage collection all the threads are suspended and thus application is in standstill state till the garbage collection is completed. High amount value for this counter indicates a problem, as application will be in halted state for large amount of time. Generally a value greater than 5 is considered as problematic.

Other counters that can be observed in case of high memory usage are "Private Bytes" and "Number Byte in All Heaps". These counters help in finding the amount of memory that is used by Managed and UnManaged objects. Counter "Number Byte in All Heaps" represents the number of bytes used by Managed objects. Counter "Private Bytes" represents the all committed regions for the process. Thus values for counters "Private Bytes" minus "Number Byte in All Heaps" will represent the number of bytes committed by UnManaged objects. Thus you now know the amount of memory used by Managed and UnManaged objects and you can start your investigation accordingly.

You can use Memory profiling tools like ANTS profiler or CLR profiler or any other to investigate in detail about the problems related to memory consumption and memory leaks.