Thursday, May 23, 2013

How to print GC details into a file for your program?

 For your local program (for example - say you have written a standalone DOM xml parser or any memory intensive program on which you want to check GC*  usage).

In RAD (for IBM JVM) --> right click on the java class --> goto "Run As" --> goto "Run configurations" --> goto "Arguments" tab in the pop-up --> set the below under VM arguments

-Xverbosegclog:D:\Your_Path\Your_Sub_Path\jvm.log

On a Sun JVM:
  -Xloggc:C:\Your_Path\jvm.log -verbose:gc -XX:+PrintGCDateStamps
(if there are spaces in folder or file names, it will be interpreted as another VM argument)
Then Run your program. GC details will be logged in that file (jvm.log in this case)

* GC- Garbage Collector
Referene:

http://stackoverflow.com/questions/1161647/how-to-redirect-verbose-garbage-collection-output-to-a-file

JVM Architecture

The Java Virtual Machine (JVM) is an abstract computing machine. The JVM is a program that looks like a machine to the programs written to execute in it. This way, Java programs are written to the same set of interfaces and libraries. Each JVM implementation for a specific operating system, translates the Java programming instructions into instructions and commands that run on the local operating system. This way, Java programs achieve platform independence.
        The Java virtual machine knows nothing of the Java programming language, only of a particular binary format, the class file format. A class file contains Java virtual machine instructions (or bytecodes) and a symbol table, as well as other ancillary information.
For the sake of security, the Java virtual machine imposes strong syntactic and structural constraints on the code in a class file. However, any language with functionality that can be expressed in terms of a valid class file can be hosted by the Java virtual machine. Attracted by a generally available, machine-independent platform, implementors of other languages can turn to the Java virtual machine as a delivery vehicle for their languages.

 

Exploring the JVM Architecture

Hotspot Architecture

The HotSpot JVM possesses an architecture that supports a strong foundation of features and capabilities and supports the ability to realize high performance and massive scalability. For example, the HotSpot JVM JIT compilers generate dynamic optimizations. In other words, they make optimization decisions while the Java application is running and generate high-performing native machine instructions targeted for the underlying system architecture. In addition, through the maturing evolution and continuous engineering of its runtime environment and multithreaded garbage collector, the HotSpot JVM yields high scalability on even the largest available computer systems.

The main components of the JVM include the classloader, the runtime data areas, and the execution engine.

Key Hotspot Components

The key components of the JVM that relate to performance are highlighted in the following image.




There are three components of the JVM that are focused on when tuning performance. The heap is where your object data is stored. This area is then managed by the garbage collector selected at startup. Most tuning options relate to sizing the heap and choosing the most appropriate garbage collector for your situation. The JIT compiler also has a big impact on performance but rarely requires tuning with the newer versions of the JVM.

Tuesday, May 21, 2013

JVM Memory


•Eden Space (heap): The pool from which memory is initially allocated for most objects.
•Survivor Space (heap): The pool containing objects that have survived the garbage collection of the Eden space.
•Tenured Space (heap): The pool containing objects that have existed for some time in the survivor space.
•Perm Space (non-heap): The pool containing all the reflective data of the virtual machine itself, such as class and method objects. With Java VMs that use class data sharing, this generation is divided into read-only and read-write areas.
•Code Cache (non-heap): The HotSpot Java VM also includes a code cache, containing memory that is used for compilation and storage of native code.

Tuesday, May 14, 2013

Openings At Infosys

Pre-requisites:
       ·         Candidate must have good, consistent academics & should be B.E / B.Tech / M.C.A /   M.Sc / M.E / M.Tech.
       ·         Candidate must have 3 to 11 years of relevant experience.
       ·         Date of Birth, personal email id and contact number of the candidate should be updated in the resume.

         Please send resumes to: samba_mca06@gmail.com



Tracks
Skill Sets
Location
VLSI
Design and verification, DFT, Physical Design
Bangalore
Application Development
Java-J2EE, Struts, Hibernate
Bangalore, Trivandrum, Hyderabad
HTML5
Bangalore
C++ with Telecom domain
Bangalore, Trivandrum
.Net
Pune, Bangalore
MES
PI, LIMS, Simatic IT
Pune, Bangalore
Industrial Automation
Power controls, DCS configuration, .net, WPF
Mysore
Plant Engineering
CeasarII, PDMS, Piping
Mysore
Turbomachinery
Computational Fluid Dynamics-Fluent, CFX, Ansys ,
Aerodynamic & thermodynamic cycle, Calculations
Mysore

Design- Catia V4/5, Manufacturing
Mysore 
Stress
Aerospace-FEA: Hypermesh, Ansys, Abaqus, Patran, Nastran, Hand calculations
Mysore, Bangalore
Automotive- Crash, Safety, NVH, Durability, Interior CAE
Tools-Ansa, LS-DYNA, Nastran
Chennai

PLM
Windchill , FlexPLM, SAP PLM, Teamcenter, PDMS LICAD
Mysore, Bangalore, Hyderabad, Pune
Contact centre
Genesys Framework 7.x/8.x, Cisco IPCC, Avaya, Aura,Designing of Routing, Reporting, work force management( WFM), call/voice recorders
Chennai, Pune
POS
POS Domain :  Retail, Grocery, QSRPOS
Platforms : Windows POSReady,IBM SurePOS, Wincor,Epicor, Fujitsu Technology Platforms : VBScript, VB6,  VC++, C#, C, C++, SQL, Java
OS Customization : OSD, MDT, WAIK
OS Deployment : SCCM, PXE, WDS
Compliance and Regulations : PCI Compliance
Bangalore, Trivandrum
Embedded
Windows Drivers, Linux Device Drivers, Connectivity, Graphics and Audio, Multimedia frameworks, Embedded firmware
Bangalore, Hyderabad

Sunday, April 21, 2013

Access Specifiers and Access Modifiers

All the four access specifiers, Java supports, can be applied to variables – public,protecteddefault and private. If the specifier is not mentioned, it takes default access. A local variable must be default only.The two access specifiers a class can accept are public or defaultDefault means the specifier is not mentioned at all.

The list of modifiers are : public, protected,default,private,abstract,final, static.


Type Conversions in Java

This summary is not available. Please click here to view the post.

Saturday, March 23, 2013

JSP - Auto Page Refresh


Consider a webpage which is displaying live game score or stock market status or currency exchange ration. For all such type of pages, you would need to refresh your web page regularly using referesh or reload button with your browser.
JSP makes this job easy by providing you a mechanism where you can make a webpage in such a way that it would refresh automatically after a given interval.
The simplest way of refreshing a web page is using method setIntHeader() of response object. Following is the signature of this method:
public void setIntHeader(String header, int headerValue)
This method sends back header "Refresh" to the browser along with an integer value which indicates time interval in seconds.

Auto Page Refresh Example:

Following example would use setIntHeader() method to set Refresh header to simulate a digital clock:
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>Auto Refresh Header Example</title>
</head>
<body>
<center>
<h2>Auto Refresh Header Example</h2>
<%
   // Set refresh, autoload time as 5 seconds
   response.setIntHeader("Refresh", 5);
   // Get current time
   Calendar calendar = new GregorianCalendar();
   String am_pm;
   int hour = calendar.get(Calendar.HOUR);
   int minute = calendar.get(Calendar.MINUTE);
   int second = calendar.get(Calendar.SECOND);
   if(calendar.get(Calendar.AM_PM) == 0)
      am_pm = "AM";
   else
      am_pm = "PM";
   String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
   out.println("Crrent Time: " + CT + "\n");
%>
</center>
</body>
</html>