I have a socket application where this is a listener and import a number of 3rd part library as below.

Java Code:
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.Date;
import java.text.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;
import java.sql.*;
import java.util.concurrent.LinkedBlockingQueue;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.jolbox.bonecp.BoneCP;
import com.jolbox.bonecp.BoneCPConfig;
I do have some very big function defined and a number of global variables defined. What worries me is that there is an increase in the perm generation over some time. So I run this commands

Java Code:
./jinfo -flag MaxPermSize 28018 shows as -XX=85983232 and 
./jinfo -flag PermSize 28018 shows as -XX=21757952 

but when I run ./jstat -gcutil -t 28018 15s but the P column shows as 76.33?
and when I run ./jstat -gc -t 28018 15s and PC is 21248.0 and PU is 16221.8
Any explanation why there is a difference between ./jinfo value and -gc value? In what format does the ./jinfo represent is it Kb or Bytes and also -gc?