+ /**
+ * Decide on appropriate memory setting for Jalview based on the two arguments
+ * values: jvmmempc - the maximum percentage of total physical memory to
+ * allocate, and jvmmemmax - the maximum absolute amount of physical memory to
+ * allocate. These can be provided as arguments. If not provided as arguments
+ * (or set as null) system properties will be used instead (if set). The memory
+ * setting returned will be the lower of the two values. If either of the values
+ * are not provided then defaults will be used (jvmmempc=90, jvmmemmax=32GB). If
+ * total physical memory can't be ascertained when jvmmempc was set or neither
+ * jvmmempc nor jvmmemmax were set, then jvmmemmax defaults to a much safer 8GB.
+ * In this case explicitly setting jvmmemmax and not setting jvmmempc can set a
+ * higher memory for Jalview. The calculation also tries to ensure 0.5GB memory
+ * for the OS, but also tries to ensure at least 0.5GB memory for Jalview (which
+ * takes priority over the OS) If there is less then 0.5GB of physical memory
+ * then the total physical memory is used for Jalview.
+ *
+ * @param jvmmemmaxarg
+ * Maximum value of memory to set. This can be a numeric
+ * string optionally followed by "b", "k", "m", "g", "t"
+ * (case insensitive) to indicate bytes, kilobytes,
+ * megabytes, gigabytes, terabytes respectively. If null a
+ * default value of 32G will be used. If null and either
+ * physical memory can't be determined then the default is
+ * 8GB.
+ * @param jvmmempcarg
+ * Max percentage of physical memory to use. Defaults to
+ * "90".
+ *
+ * @return The amount of memory (in bytes) to allocate to Jalview
+ */
+ public static long getMemorySetting(String jvmmemmaxarg,
+ String jvmmempcarg)