On Mon, 2004-03-22 at 18:02, Gary Gregory wrote:
> I cannot say that I am in favor of this change for several reasons.
> 
> (1) No performance benchmarks. This sounds like a "thought"
> optimization.
> 
> (2) If the classes do take some amount of time T longer load, so what?
> Context is what matters, for instance, for the example I know best, my
> company's app server, if the server takes 20 seconds or 20+T (=?)
> seconds to start, no one cares. Our customers leave the server running
> for days or have policies whereby servers are rebooted every night.
> Oddly enough though, some folks look at our lib directory and count
> bytes and say things like "this is so big and there are so may jars,
> blah blah". So doubling the size of all commons jar files is not going
> to win us any fans. But that's just my case.
> 
> Gary

I agree with Gary. Burdening users with uncompressed jars is the wrong
side of 80/20, in fact it's probably the wrong side of 99/1.

For the record I tested the time it takes to load every class in
collections-3.1-dev with and without compression of the the jar. The
test class is attached.

Jar sizes:

         525987 commons-collections-3.1-dev.jar
        1097220 commons-collections-3.1-dev-no-compress.jar

Millis to load all classes (5 runs)

        compressed      uncompressed
        
        797             669
        802             680
        796             668
        799             675
        798             675

There is no case for distributing uncompressed jars when the target
application is server side java.

-Janek
import org.apache.commons.lang.time.StopWatch;

class ClassesLoader {

    public static void main(String[] args) throws ClassNotFoundException {

	StopWatch sw = new StopWatch();
	sw.start();
	for(int i = 0 ; i < classes.length ; i++ ) {
	    Class clazz = Class.forName( classes [ i ] ) ;
	} 
        sw.stop();
	System.out.println("millis: " + sw.getTime());
    }

static String [] classes = {
"org.apache.commons.collections.bag.AbstractBagDecorator",
"org.apache.commons.collections.bag.AbstractMapBag",
"org.apache.commons.collections.bag.AbstractSortedBagDecorator",
"org.apache.commons.collections.bag.HashBag",
"org.apache.commons.collections.bag.PredicatedBag",
"org.apache.commons.collections.bag.PredicatedSortedBag",
"org.apache.commons.collections.bag.SynchronizedBag",
"org.apache.commons.collections.bag.SynchronizedSortedBag",
"org.apache.commons.collections.bag.TransformedBag",
"org.apache.commons.collections.bag.TransformedSortedBag",
"org.apache.commons.collections.bag.TreeBag",
"org.apache.commons.collections.bag.TypedBag",
"org.apache.commons.collections.bag.TypedSortedBag",
"org.apache.commons.collections.bag.UnmodifiableBag",
"org.apache.commons.collections.bag.UnmodifiableSortedBag",
"org.apache.commons.collections.list.AbstractLinkedList",
"org.apache.commons.collections.list.AbstractListDecorator",
"org.apache.commons.collections.list.CursorableLinkedList",
"org.apache.commons.collections.list.FixedSizeList",
"org.apache.commons.collections.list.LazyList",
"org.apache.commons.collections.list.NodeCachingLinkedList",
"org.apache.commons.collections.list.PredicatedList",
"org.apache.commons.collections.list.SetUniqueList",
"org.apache.commons.collections.list.SynchronizedList",
"org.apache.commons.collections.list.TransformedList",
"org.apache.commons.collections.list.TypedList",
"org.apache.commons.collections.list.UnmodifiableList",
"org.apache.commons.collections.ArrayStack",
"org.apache.commons.collections.Bag",
"org.apache.commons.collections.BagUtils",
"org.apache.commons.collections.BeanMap",
"org.apache.commons.collections.BidiMap",
"org.apache.commons.collections.BinaryHeap",
"org.apache.commons.collections.BoundedCollection",
"org.apache.commons.collections.BoundedFifoBuffer",
"org.apache.commons.collections.BoundedMap",
"org.apache.commons.collections.Buffer",
"org.apache.commons.collections.BufferOverflowException",
"org.apache.commons.collections.BufferUnderflowException",
"org.apache.commons.collections.BufferUtils",
"org.apache.commons.collections.Closure",
"org.apache.commons.collections.ClosureUtils",
"org.apache.commons.collections.CollectionUtils",
"org.apache.commons.collections.ComparatorUtils",
"org.apache.commons.collections.CursorableLinkedList",
"org.apache.commons.collections.DefaultMapBag",
"org.apache.commons.collections.DefaultMapEntry",
"org.apache.commons.collections.DoubleOrderedMap",
"org.apache.commons.collections.EnumerationUtils",
"org.apache.commons.collections.ExtendedProperties",
"org.apache.commons.collections.Factory",
"org.apache.commons.collections.FactoryUtils",
"org.apache.commons.collections.FastArrayList",
"org.apache.commons.collections.FastHashMap",
"org.apache.commons.collections.FastTreeMap",
"org.apache.commons.collections.FunctorException",
"org.apache.commons.collections.HashBag",
"org.apache.commons.collections.IterableMap",
"org.apache.commons.collections.IteratorUtils",
"org.apache.commons.collections.KeyValue",
"org.apache.commons.collections.LRUMap",
"org.apache.commons.collections.ListUtils",
"org.apache.commons.collections.MapIterator",
"org.apache.commons.collections.MapUtils",
"org.apache.commons.collections.MultiHashMap",
"org.apache.commons.collections.MultiMap",
"org.apache.commons.collections.OrderedBidiMap",
"org.apache.commons.collections.OrderedIterator",
"org.apache.commons.collections.OrderedMap",
"org.apache.commons.collections.OrderedMapIterator",
"org.apache.commons.collections.Predicate",
"org.apache.commons.collections.PredicateUtils",
"org.apache.commons.collections.PriorityQueue",
"org.apache.commons.collections.ProxyMap",
"org.apache.commons.collections.ReferenceMap",
"org.apache.commons.collections.ResettableIterator",
"org.apache.commons.collections.ResettableListIterator",
"org.apache.commons.collections.SequencedHashMap",
"org.apache.commons.collections.SetUtils",
"org.apache.commons.collections.SortedBag",
"org.apache.commons.collections.SortedBidiMap",
"org.apache.commons.collections.StaticBucketMap",
"org.apache.commons.collections.SynchronizedPriorityQueue",
"org.apache.commons.collections.Transformer",
"org.apache.commons.collections.TransformerUtils",
"org.apache.commons.collections.TreeBag",
"org.apache.commons.collections.UnboundedFifoBuffer",
"org.apache.commons.collections.Unmodifiable",
"org.apache.commons.collections.bidimap.AbstractBidiMapDecorator",
"org.apache.commons.collections.bidimap.AbstractDualBidiMap",
"org.apache.commons.collections.bidimap.AbstractOrderedBidiMapDecorator",
"org.apache.commons.collections.bidimap.AbstractSortedBidiMapDecorator",
"org.apache.commons.collections.bidimap.DualHashBidiMap",
"org.apache.commons.collections.bidimap.DualTreeBidiMap",
"org.apache.commons.collections.bidimap.TreeBidiMap",
"org.apache.commons.collections.bidimap.UnmodifiableBidiMap",
"org.apache.commons.collections.bidimap.UnmodifiableOrderedBidiMap",
"org.apache.commons.collections.bidimap.UnmodifiableSortedBidiMap",
"org.apache.commons.collections.buffer.AbstractBufferDecorator",
"org.apache.commons.collections.buffer.BlockingBuffer",
"org.apache.commons.collections.buffer.BoundedFifoBuffer",
"org.apache.commons.collections.buffer.CircularFifoBuffer",
"org.apache.commons.collections.buffer.PredicatedBuffer",
"org.apache.commons.collections.buffer.PriorityBuffer",
"org.apache.commons.collections.buffer.SynchronizedBuffer",
"org.apache.commons.collections.buffer.TransformedBuffer",
"org.apache.commons.collections.buffer.TypedBuffer",
"org.apache.commons.collections.buffer.UnboundedFifoBuffer",
"org.apache.commons.collections.buffer.UnmodifiableBuffer",
"org.apache.commons.collections.collection.AbstractCollectionDecorator",
"org.apache.commons.collections.collection.CompositeCollection",
"org.apache.commons.collections.collection.PredicatedCollection",
"org.apache.commons.collections.collection.SynchronizedCollection",
"org.apache.commons.collections.collection.TransformedCollection",
"org.apache.commons.collections.collection.TypedCollection",
"org.apache.commons.collections.collection.UnmodifiableBoundedCollection",
"org.apache.commons.collections.collection.UnmodifiableCollection",
"org.apache.commons.collections.comparators.BooleanComparator",
"org.apache.commons.collections.comparators.ComparableComparator",
"org.apache.commons.collections.comparators.ComparatorChain",
"org.apache.commons.collections.comparators.FixedOrderComparator",
"org.apache.commons.collections.comparators.NullComparator",
"org.apache.commons.collections.comparators.ReverseComparator",
"org.apache.commons.collections.comparators.TransformingComparator",
"org.apache.commons.collections.functors.AllPredicate",
"org.apache.commons.collections.functors.AndPredicate",
"org.apache.commons.collections.functors.AnyPredicate",
"org.apache.commons.collections.functors.ChainedClosure",
"org.apache.commons.collections.functors.ChainedTransformer",
"org.apache.commons.collections.functors.CloneTransformer",
"org.apache.commons.collections.functors.ClosureTransformer",
"org.apache.commons.collections.functors.ConstantFactory",
"org.apache.commons.collections.functors.ConstantTransformer",
"org.apache.commons.collections.functors.EqualPredicate",
"org.apache.commons.collections.functors.ExceptionClosure",
"org.apache.commons.collections.functors.ExceptionFactory",
"org.apache.commons.collections.functors.ExceptionPredicate",
"org.apache.commons.collections.functors.ExceptionTransformer",
"org.apache.commons.collections.functors.FactoryTransformer",
"org.apache.commons.collections.functors.FalsePredicate",
"org.apache.commons.collections.functors.ForClosure",
"org.apache.commons.collections.functors.FunctorUtils",
"org.apache.commons.collections.functors.IdentityPredicate",
"org.apache.commons.collections.functors.IfClosure",
"org.apache.commons.collections.functors.InstanceofPredicate",
"org.apache.commons.collections.functors.InstantiateFactory",
"org.apache.commons.collections.functors.InstantiateTransformer",
"org.apache.commons.collections.functors.InvokerTransformer",
"org.apache.commons.collections.functors.MapTransformer",
"org.apache.commons.collections.functors.NOPClosure",
"org.apache.commons.collections.functors.NOPTransformer",
"org.apache.commons.collections.functors.NonePredicate",
"org.apache.commons.collections.functors.NotNullPredicate",
"org.apache.commons.collections.functors.NotPredicate",
"org.apache.commons.collections.functors.NullIsExceptionPredicate",
"org.apache.commons.collections.functors.NullIsFalsePredicate",
"org.apache.commons.collections.functors.NullIsTruePredicate",
"org.apache.commons.collections.functors.NullPredicate",
"org.apache.commons.collections.functors.OnePredicate",
"org.apache.commons.collections.functors.OrPredicate",
"org.apache.commons.collections.functors.PredicateTransformer",
"org.apache.commons.collections.functors.PrototypeFactory",
"org.apache.commons.collections.functors.StringValueTransformer",
"org.apache.commons.collections.functors.SwitchClosure",
"org.apache.commons.collections.functors.SwitchTransformer",
"org.apache.commons.collections.functors.TransformedPredicate",
"org.apache.commons.collections.functors.TransformerClosure",
"org.apache.commons.collections.functors.TransformerPredicate",
"org.apache.commons.collections.functors.TruePredicate",
"org.apache.commons.collections.functors.UniquePredicate",
"org.apache.commons.collections.functors.WhileClosure",
"org.apache.commons.collections.iterators.AbstractIteratorDecorator",
"org.apache.commons.collections.iterators.AbstractListIteratorDecorator",
"org.apache.commons.collections.iterators.AbstractMapIteratorDecorator",
"org.apache.commons.collections.iterators.AbstractOrderedMapIteratorDecorator",
"org.apache.commons.collections.iterators.ArrayIterator",
"org.apache.commons.collections.iterators.ArrayListIterator",
"org.apache.commons.collections.iterators.CollatingIterator",
"org.apache.commons.collections.iterators.EntrySetMapIterator",
"org.apache.commons.collections.iterators.EnumerationIterator",
"org.apache.commons.collections.iterators.FilterIterator",
"org.apache.commons.collections.iterators.FilterListIterator",
"org.apache.commons.collections.iterators.IteratorChain",
"org.apache.commons.collections.iterators.IteratorEnumeration",
"org.apache.commons.collections.iterators.ListIteratorWrapper",
"org.apache.commons.collections.iterators.LoopingIterator",
"org.apache.commons.collections.iterators.ObjectArrayIterator",
"org.apache.commons.collections.iterators.ObjectArrayListIterator",
"org.apache.commons.collections.iterators.ProxyIterator",
"org.apache.commons.collections.iterators.ProxyListIterator",
"org.apache.commons.collections.iterators.SingletonIterator",
"org.apache.commons.collections.iterators.SingletonListIterator",
"org.apache.commons.collections.iterators.TransformIterator",
"org.apache.commons.collections.iterators.UniqueFilterIterator",
"org.apache.commons.collections.iterators.UnmodifiableIterator",
"org.apache.commons.collections.iterators.UnmodifiableListIterator",
"org.apache.commons.collections.iterators.UnmodifiableMapIterator",
"org.apache.commons.collections.iterators.UnmodifiableOrderedMapIterator",
"org.apache.commons.collections.iterators.ObjectGraphIterator",
"org.apache.commons.collections.keyvalue.AbstractKeyValue",
"org.apache.commons.collections.keyvalue.AbstractMapEntry",
"org.apache.commons.collections.keyvalue.AbstractMapEntryDecorator",
"org.apache.commons.collections.keyvalue.DefaultKeyValue",
"org.apache.commons.collections.keyvalue.DefaultMapEntry",
"org.apache.commons.collections.keyvalue.MultiKey",
"org.apache.commons.collections.keyvalue.TiedMapEntry",
"org.apache.commons.collections.keyvalue.UnmodifiableMapEntry",
"org.apache.commons.collections.map.AbstractHashedMap",
"org.apache.commons.collections.map.AbstractLinkedMap",
"org.apache.commons.collections.map.AbstractMapDecorator",
"org.apache.commons.collections.map.AbstractOrderedMapDecorator",
"org.apache.commons.collections.map.AbstractSortedMapDecorator",
"org.apache.commons.collections.map.CaseInsensitiveMap",
"org.apache.commons.collections.map.CompositeMap",
"org.apache.commons.collections.map.FixedSizeMap",
"org.apache.commons.collections.map.FixedSizeSortedMap",
"org.apache.commons.collections.map.Flat3Map",
"org.apache.commons.collections.map.HashedMap",
"org.apache.commons.collections.map.IdentityMap",
"org.apache.commons.collections.map.LRUMap",
"org.apache.commons.collections.map.LazyMap",
"org.apache.commons.collections.map.LazySortedMap",
"org.apache.commons.collections.map.LinkedMap",
"org.apache.commons.collections.map.ListOrderedMap",
"org.apache.commons.collections.map.PredicatedMap",
"org.apache.commons.collections.map.PredicatedSortedMap",
"org.apache.commons.collections.map.ReferenceMap",
"org.apache.commons.collections.map.StaticBucketMap",
"org.apache.commons.collections.map.TransformedMap",
"org.apache.commons.collections.map.TransformedSortedMap",
"org.apache.commons.collections.map.TypedMap",
"org.apache.commons.collections.map.TypedSortedMap",
"org.apache.commons.collections.map.UnmodifiableEntrySet",
"org.apache.commons.collections.map.UnmodifiableMap",
"org.apache.commons.collections.map.UnmodifiableOrderedMap",
"org.apache.commons.collections.map.UnmodifiableSortedMap",
"org.apache.commons.collections.set.AbstractSetDecorator",
"org.apache.commons.collections.set.AbstractSortedSetDecorator",
"org.apache.commons.collections.set.CompositeSet",
"org.apache.commons.collections.set.ListOrderedSet",
"org.apache.commons.collections.set.PredicatedSet",
"org.apache.commons.collections.set.PredicatedSortedSet",
"org.apache.commons.collections.set.SynchronizedSet",
"org.apache.commons.collections.set.SynchronizedSortedSet",
"org.apache.commons.collections.set.TransformedSet",
"org.apache.commons.collections.set.TransformedSortedSet",
"org.apache.commons.collections.set.TypedSet",
"org.apache.commons.collections.set.TypedSortedSet",
"org.apache.commons.collections.set.UnmodifiableSet",
"org.apache.commons.collections.set.UnmodifiableSortedSet"
};

}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to