Revision: 4013
          http://vexi.svn.sourceforge.net/vexi/?rev=4013&view=rev
Author:   jeffbuhrt
Date:     2011-02-01 03:17:56 +0000 (Tue, 01 Feb 2011)

Log Message:
-----------
Added vexi.system.gc() and vexi.system.memoryusage() for application 
debugging/development use.
Example usage:
var mem = vexi.system.memoryusage();
vexi.log.info("mem.maxMemory:" + mem.maxMemory);
vexi.log.info("mem.totalMemory:" + mem.totalMemory);
vexi.log.info("mem.freeMemory:" + mem.freeMemory);
vexi.system.gc();

Modified Paths:
--------------
    trunk/org.vexi-core.main/src/main/jpp/org/vexi/core/Vexi.jpp

Modified: trunk/org.vexi-core.main/src/main/jpp/org/vexi/core/Vexi.jpp
===================================================================
--- trunk/org.vexi-core.main/src/main/jpp/org/vexi/core/Vexi.jpp        
2011-01-31 16:35:30 UTC (rev 4012)
+++ trunk/org.vexi-core.main/src/main/jpp/org/vexi/core/Vexi.jpp        
2011-02-01 03:17:56 UTC (rev 4013)
@@ -314,6 +314,7 @@
         case "file": return getSub(name);
         case "global": return getSub(name);
         case "thread": return getSub(name);
+        case "system": return getSub(name);
         case "net": return getSub(name);
         case "net.rpc": return getSub(name);
         case "ui": return getSub(name);
@@ -407,6 +408,16 @@
          * @return(null) */
         case "thread.yield": return METHOD;
         
+        /* Calls JVM's gc()
+         * @method 
+         * @return(null) */
+        case "system.gc": return METHOD;
+        
+        /* Returns Java's current: maxMemory, totalMemory, freeMemory 
respectively in KB
+         * @method 
+         * @return(null) */
+        case "system.memoryusage": return METHOD;
+
         /* Logs its arguments by first passing them to stringify then 
formatting the resultant
          * strings so they are human readable
          * @method
@@ -683,6 +694,20 @@
                 //#switch(JSU.toString(method))
                 case "exit": Main.exit(); return null; 
                 case "thread.yield": Main.SCHEDULER.sleep(-1); return null;
+                case "system.gc": System.gc(); return null;
+                case "system.memoryusage":
+                    Runtime r = Runtime.getRuntime();
+
+                    long freeMem = r.freeMemory() / 1024;
+                    long maxMem = r.maxMemory() / 1024;
+                    long totalMem = r.totalMemory() / 1024;
+
+                    JS ret = new JS.Obj();
+                    ret.put(JSU.S("maxMemory"), JSU.N(maxMem));
+                    ret.put(JSU.S("totalMemory"), JSU.N(totalMem));
+                    ret.put(JSU.S("freeMemory"), JSU.N(freeMem));
+                    return ret;
+                            
                 //#end
                 break;
             case 1:


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to