Author: ruschein
Date: 2010-10-25 13:19:34 -0700 (Mon, 25 Oct 2010)
New Revision: 22377

Modified:
   cytoscape/trunk/distribution/src/main/bin/gen_vmoptions.sh
Log:
Dynamically determine available physical memory.

Modified: cytoscape/trunk/distribution/src/main/bin/gen_vmoptions.sh
===================================================================
--- cytoscape/trunk/distribution/src/main/bin/gen_vmoptions.sh  2010-10-25 
20:06:54 UTC (rev 22376)
+++ cytoscape/trunk/distribution/src/main/bin/gen_vmoptions.sh  2010-10-25 
20:19:34 UTC (rev 22377)
@@ -10,13 +10,27 @@
     /bin/mkdir $vm_options_path
 fi
 
+# Determine amount of physical memory present:
+if [ `uname` = "Darwin" ]; then
+    phys_mem=`sysctl -a | grep 'hw.memsize =' | sed 's/[ ][ ][ ]*/ /g' | cut 
-f 3 -d ' '`
+    phys_mem=$((phys_mem / 1024 / 1024)) # Convert from B to MiB
+else # We assume Linux
+    phys_mem=`cat /proc/meminfo | grep 'MemTotal:' | sed 's/[ ][ ][ ]*/ /g' | 
cut -f 2 -d ' '`
+    phys_mem=$((phys_mem / 1024)) # Convert from KiB to MiB
+fi
+
 if `java -version 2>&1 | grep -- 64-Bit > /dev/null`; then # We have a 64 bit 
JVM.
-    echo -Xms20m >  "$vm_options_path/Cytoscape.vmoptions"
-    echo -Xmx20g >> "$vm_options_path/Cytoscape.vmoptions"
-    echo -d64       >> "$vm_options_path/Cytoscape.vmoptions"
+    echo -Xms20m          >  "$vm_options_path/Cytoscape.vmoptions"
+    echo -Xmx${phys_mem}m >> "$vm_options_path/Cytoscape.vmoptions"
+    echo -d64             >> "$vm_options_path/Cytoscape.vmoptions"
 else # Assume a 32 bit JVM.
-    echo -Xms10m   >  "$vm_options_path/Cytoscape.vmoptions"
-    echo -Xmx1550m >> "$vm_options_path/Cytoscape.vmoptions"
+    # Truncate memory setting at 1550 MiB:
+    if [ $phys_mem -gt 1550 ]; then
+       phys_mem=1550
+    fi
+
+    echo -Xms10m          >  "$vm_options_path/Cytoscape.vmoptions"
+    echo -Xmx${phys_mem}m >> "$vm_options_path/Cytoscape.vmoptions"
 fi
 
 # Shared JVM options

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to