Author: scooter
Date: 2012-07-10 11:48:10 -0700 (Tue, 10 Jul 2012)
New Revision: 29822
Added:
core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions
core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat
core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
Modified:
core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat
core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml
Log:
Add support for memory sizing
Added: core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions
(rev 0)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions
2012-07-10 18:48:10 UTC (rev 29822)
@@ -0,0 +1 @@
+4937M
Modified: core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat
2012-07-10 18:48:10 UTC (rev 29822)
@@ -3,8 +3,29 @@
set KARAF_TITLE=Cytoscape
set DEBUG_PORT=12345
+:: Create the Cytoscape.vmoptions file, if it doesn't exist.
+IF EXIST "Cytoscape.vmoptions" GOTO vmoptionsFileExists
+CALL gen_vmoptions.bat
+:vmoptionsFileExists
+
+
+IF EXIST "Cytoscape.vmoptions" GOTO itIsThere
+; Run with defaults:
+echo "*** Missing Cytoscape.vmoptions, falling back to using defaults!"
set JAVA_MAX_MEM=1550M
+GOTO setDebugOpts
+:: We end up here if we have a Cytoscape.vmoptions file:
+:itIsThere
+:: Read max memory
+setLocal EnableDelayedExpansion
+for /f "tokens=* delims= " %%a in (Cytoscape.vmoptions) do (
+set /a N+=1
+set opt!N!=%%a
+)
+set JAVA_MAX_MEM=!opt1!
+
+:setDebugOpts
set JAVA_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%DEBUG_PORT%
set PWD=%~dp0
set KARAF_OPTS=-Xss10M -Duser.dir="%PWD:\=\\%"
-splash:CytoscapeSplashScreen.png
@@ -91,4 +112,5 @@
set JAVA=%JAVA_HOME%\bin\java
:END
+:: This is probably wrong. We don't really want the user to be in this
directory, do we?
framework/bin/karaf %1 %2 %3 %4 %5 %6 %7 %8
Modified: core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh
2012-07-10 18:48:10 UTC (rev 29822)
@@ -1,15 +1,37 @@
-#!/bin/bash
+#!/bin/sh
+#
+# Run cytoscape from a jar file
+# This script is a UNIX-only (i.e. Linux, Mac OS, etc.) version
+#-------------------------------------------------------------------------------
DEBUG_PORT=12345
-cd $(dirname $0)
+script_path="$(dirname -- $0)"
+if [ -h $script_path ]; then
+ script_path="$(readlink $script_path)"
+fi
-export JAVA_MAX_MEM=1550M
-
export JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${DEBUG_PORT}"
if [ `uname` = "Darwin" ]; then
CYTOSCAPE_MAC_OPTS="-Xdock:icon=cytoscape_logo_512.png"
fi
+
+#vm_options_path=$HOME/.cytoscape
+vm_options_path=$script_path
+
+# Attempt to generate Cytoscape.vmoptions if it doesn't exist!
+if [ ! -e "$vm_options_path/Cytoscape.vmoptions" -a -x
"$script_path/gen_vmoptions.sh" ]; then
+ "$script_path/gen_vmoptions.sh"
+fi
+
+if [ -r $vm_options_path/Cytoscape.vmoptions ]; then
+ export JAVA_MAX_MEM=`cat $vm_options_path/Cytoscape.vmoptions`
+else # Just use sensible defaults.
+ echo '*** Missing Cytoscape.vmoptions, falling back to using defaults!'
+ # Initialize MAX_MEM to something reasonable
+ export JAVA_MAX_MEM=1550M
+fi
+
PWD=$(pwd)
# The user working directory needs to be explecitly set in -Duser.dir to
current
# working directory since KARAF changes it to the framework directory. There
@@ -17,4 +39,4 @@
# working directory to framework is not known.
export KARAF_OPTS="-Xss10M -Duser.dir=$PWD -splash:CytoscapeSplashScreen.png
$CYTOSCAPE_MAC_OPTS"
-framework/bin/karaf "$@"
+$script_path/framework/bin/karaf "$@"
Added: core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat
(rev 0)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat
2012-07-10 18:48:10 UTC (rev 29822)
@@ -0,0 +1,47 @@
+@echo off
+
+:: Generates the Cytoscape.vmoptions file based on whether
+:: we're dealing with a 32 bit or 64 bit JVM.
+
+:: Create the .cytoscape directory if it doesn't already exist
+;if exist "%HOMEPATH%\.cytoscape" goto dot_cytoscape_exists
+;mkdir "%HOMEPATH%\.cytoscape"
+;:dot_cytoscape_exists
+
+set physmem=768
+set mem=768
+if exist findmem.out del findmem.out
+systeminfo | find "Total Physical Memory" > findmem.out
+if %ERRORLEVEL% NEQ 0 GOTO Javatest
+for /f "tokens=4" %%i in (findmem.out) do set physmem=%%i
+set physmem=%physmem:,=%
+
+if %physmem% GTR 1536 set mem=1024
+if %physmem% GTR 2048 set mem=1536
+if %physmem% GTR 3072 set /a mem=%physmem%-1024
+REM if %physmem% GTR 4096 set mem=3072
+REM if %physmem% GTR 9216 set mem=4096
+
+:Javatest
+ if exist findstr.out del findstr.out
+ java -version 2>&1 | findstr /I 64-Bit > findstr.out
+ if %ERRORLEVEL% NEQ 0 GOTO Nojava
+ for /f %%i in ('dir /b findstr.out') do if %%~zi equ 0 goto 32bit
+
+:64bit
+ REM echo "64 bit %mem% MB"
+ echo %mem%M >>Cytoscape.vmoptions
+ goto End
+
+:32bit
+ REM echo "32 bit %mem% MB"
+ REM Some java versions can only support 1400MB
+ if %mem% GTR 1400 set mem=1400
+ echo %mem%M >>Cytoscape.vmoptions
+
+:Nojava
+ echo ERROR: Can't find java executable
+
+:End
+ del findstr.out
+ del findmem.out
Added: core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
(rev 0)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
2012-07-10 18:48:10 UTC (rev 29822)
@@ -0,0 +1,43 @@
+#!/bin/sh
+# Generates the Cytoscape.vmoptions file
+
+script_path="$(dirname -- $0)"
+
+#vm_options_path="$HOME/.cytoscape"
+vm_options_path=$script_path
+
+if [ ! -e $vm_options_path ]; then
+ /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
+
+# Now we know the amount of physical memory, but we don't want to try to use
it all
+mem=768
+if [ $phys_mem -gt 3071 ]; then
+ mem=$((phys_mem-1024))
+elif [ $phys_mem -gt 2047 ]; then
+ mem=1536
+elif [ $phys_mem -gt 1535 ]; then
+ mem=1024
+fi
+
+if `java -version 2>&1 | grep -- 64-Bit > /dev/null`; then # We have a 64 bit
JVM.
+ echo ${mem}M >> "$vm_options_path/Cytoscape.vmoptions"
+else # Assume a 32 bit JVM.
+ # Truncate memory setting at 1550 MiB:
+ if [ $mem -gt 1550 ]; then
+ mem=1550
+ fi
+
+ echo ${mem}M >> "$vm_options_path/Cytoscape.vmoptions"
+fi
+
+exit 0
Property changes on:
core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
___________________________________________________________________
Added: svn:executable
+ *
Modified:
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml
2012-07-10 18:48:10 UTC (rev 29822)
@@ -15,6 +15,9 @@
<scripts>
<script>cytoscape.sh</script>
<script>cytoscape.bat</script>
+ <script>gen_vmoptions.sh</script>
+ <script>gen_vmoptions.bat</script>
+ <script>Cytoscape.vmoptions</script>
</scripts>
</cytoscape>
-</config>
\ No newline at end of file
+</config>
Modified:
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml
2012-07-10 18:48:10 UTC (rev 29822)
@@ -13,6 +13,8 @@
<cytoscape>
<scripts>
<script>cytoscape.sh</script>
+ <script>gen_vmoptions.sh</script>
+ <script>Cytoscape.vmoptions</script>
</scripts>
</cytoscape>
-</config>
\ No newline at end of file
+</config>
Modified:
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml
===================================================================
---
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml
2012-07-10 18:06:42 UTC (rev 29821)
+++
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml
2012-07-10 18:48:10 UTC (rev 29822)
@@ -15,6 +15,9 @@
<scripts>
<script>cytoscape.bat</script>
<script>cytoscape.sh</script>
+ <script>gen_vmoptions.sh</script>
+ <script>gen_vmoptions.bat</script>
+ <script>Cytoscape.vmoptions</script>
</scripts>
</cytoscape>
</config>
--
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.