• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
FYI - DrMem memory profile logger
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI - DrMem memory profile logger


  • Subject: FYI - DrMem memory profile logger
  • From: Kieran Kelleher <email@hidden>
  • Date: Tue, 24 Nov 2009 09:44:58 -0500

Just FYI,

For those of you who don't want to fork out $500 for a profiler or don't want to waste time trying to make trial versions work when they don't work "out of the box", but would like to get snapshots of objects in memory showing class type, and quantity logged periodically to a log file, DrMem (up to java 1.5 compatible) might be worth a look. http://sourceforge.net/projects/simpleprofiler/. Just download, expand and cd into the Mac OS X dir and type "make". Then copy the lib to java extensions and add launch arguments to your Eclpse launch profile sth like this:

-Xrundrmem:file=/tmp/mywoa_drmem.log,maxObjects=100000,maxTime=30

I tried some other free tools, such as jmap (built-in) and jmp, but did not have any success.

DrMem is a simple agent that does a very simple thing and does it reliably and simply. It logs a snapshot of memory every X objects created. So you can set that to 100000 objects or a million objects. the default is 10 milion. It might be useful also for a deployment scenario where you have a slow memory leak. In development, if you set it to a low number, like 10,000, it is logging so much that it slows your app down.

An example of the head of a memory snapshot is sth like this:

Object allocation report from Tue Nov 24 09:29:28 2009

  Number of objects: Currently 5290516, total 11700000

  Class list follows:
       Currently        Total         Size Class name
         1118670      2338521     27184080 java.lang.String
         1099143      2544624     57082952 java.lang.Object
          227644       380377     31011472 com.mysql.jdbc.Field
          217613       363530      9268712 com.webobjects.jdbcadaptor.JDBCColumn
          207533       346759      4980792 com.mysql.jdbc.Buffer
          207522       395973      3320352 java.lang.StringBuffer
          195982       335331      3148800 java.lang.Integer
          144082       277954      3457968 com.webobjects.foundation.NSArray
          139885       255724      5595400 com.webobjects.foundation.NSMutableArray
          129388       207580      9315936 com.webobjects.eocontrol._EOMutableKnownKeyDictionary
          123750       234451      2970088 java.lang.ref.WeakReference
           79519       170383      4453064 com.webobjects.foundation.NSMutableDictionary
           71734        72600      2869360 com.webobjects.foundation.NSTimestamp
           63052        75908      2017664 com.webobjects.eoaccess.EOAccessGenericFaultHandler$_EOHandlerWeakRef
           60841       102328       973456 java.util.regex.Pattern$Slice
           60421       112258       966736 java.util.regex.Pattern$Dollar
           60375       101567       966000 java.util.regex.Pattern$Begin
           53924       106458      3019744 java.util.regex.Matcher
           51772        51890      2485056 com.webobjects.eocontrol._EOCheapCopyMutableArray
           50346        84241       805536 java.util.regex.Pattern$Branch
           48027        51862      2305296 com.webobjects.eoaccess.EOAccessArrayFaultHandler
           42591        51612      1362912 com.webobjects.eocontrol._EOIntegralKeyGlobalID
           40967        62951      1638680 com.webobjects.foundation.NSMutableSet
           40262        67612       966288 com.webobjects.foundation._NSWeakMutableCollection$_NSWeakMutableCollectionReferenceEnumerator
           35508        35508      1420320 com.webobjects.eocontrol._EOWeakReference
           30467        55375       731208 java.util.ArrayList
           29864        60907       955648 java.sql.Timestamp
           27818        27880      1479704 java.util.WeakHashMap$Entry
           27469        27469      1098760 com.webobjects.eoaccess.EODatabase$_DatabaseRecord
           23386       265470       658056 java.lang.Class
           23067        71772       369072 java.lang.Boolean
           22496        39471       719872 com.webobjects.foundation._NSCollectionEnumerator
           20206        35317       484944 com.webobjects.foundation.NSNotification
           20117        33609      3057784 com.mysql.jdbc.ResultSet
           19158        33717       459792 com.webobjects.eocontrol.EOKeyValueQualifier
           16800        30915       403200 com.webobjects.foundation._NSJavaArrayEnumerator
           16728        49148       487840 java.util.HashMap$Entry
           16474        35426       527168 com.webobjects.eoaccess.EODatabaseChannel$_EODatabaseChannelFetchResult
           15025        24046       601000 com.webobjects.eoaccess.EOAccessFaultHandler
           12396        20520       595008 com.webobjects.eocontrol.EOFetchSpecification
           11350        18716       707320 java.lang.reflect.Constructor
           10604        10650       254496 er.extensions.appserver.ERXApplication$JarChecker$Entry
           10600        30458       678400 java.util.regex.Pattern
           10208       143492       874648 java.lang.reflect.Method
           10170        30908       565040 java.util.regex.Pattern$GroupHead
           10115        29071       161840 java.util.regex.Pattern$Start
           10066        17324       241584 java.util.AbstractList$Itr
           10060        16797       241440 com.mysql.jdbc.DatabaseMetaData
           10059        16798       724248 com.webobjects.jdbcadaptor.MySQLPlugIn$MySQLExpression
           10059        16797       160944 com.webobjects.jdbcadaptor.JDBCFetchPrivate
           10059        16794      2092272 com.mysql.jdbc.PreparedStatement
           10059        16794       402360 com.mysql.jdbc.PreparedStatement$ParseInfo
           10058        29080       241392 java.util.regex.Pattern$TreeInfo
           10058        16804       241392 com.mysql.jdbc.RowDataStatic
           10058        16797       190616 com.webobjects.eocontrol.EOEnterpriseObject
           10058        16797       160928 com.mysql.jdbc.ResultSetMetaData
           10058        16794       179248 java.io.InputStream
            9105         9125       946920 wk.cheetah.eof.CTLocation
            8480        18911       135680 java.lang.Double
            7820        13230       125120 com.webobjects.eocontrol.EOOrQualifier
            7604       215135       121664 java.lang.StringBuilder
            7360         7360       176640 com.webobjects.eoaccess.EODatabase$_ToManyRecord
            7300         7706       233624 java.math.BigDecimal
            7199         7214       806288 wk.cheetah.eof.CTCustomer
            5088        31155       169736 java.util.Hashtable$Entry
            4690         4709       637840 wk.cheetah.eof.CTMediaTemplate
            4428       567855       123280 com.webobjects.foundation.NSKeyValueCoding$_KeyBinding
            4207         4699       305912 java.lang.reflect.Field
            3764         3765       451680 wk.cheetah.eof.CTUser
            3615         3615       375960 wk.cheetah.eof.CTAccount
            3578        11151        85872 java.sql.Date
            3425         3425        82200 wk.eofextensions.EncodedString
            2783         2783       311696 wk.cheetah.eof.CTAddress


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Prev by Date: Re: experiencing java.lang.StackOverflowErrors WO 5.4.3/Project Wonder
  • Next by Date: State of Windows deployment in 2009?
  • Previous by thread: Re: EO Adaptor Debug
  • Next by thread: State of Windows deployment in 2009?
  • Index(es):
    • Date
    • Thread