# Copyright 2001-2009 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#############################################################################
#
# Agent JVM Configuration
#
# List additional JVM command-line arguments, one by line. These arguments
# will be appended to the default JVM command line for all agents.  
#
#############################################################################

#-showversion
#-Dfoo=bar

## enable GC log (for Sun JVMs)
#-Xloggc:results/gc.log
#-XX:+PrintGCDetails

# Enable concurrent GC to avoid sudden long pauses
-XX:+UseConcMarkSweepGC

# Set minimum memory to use
-Xms256m

# Set maximum permitted memory
-Xmx512m
