harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "weldon washburn (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-1984) GC allocation: overhead of block store is too high
Date Tue, 28 Nov 2006 01:17:22 GMT
    [ http://issues.apache.org/jira/browse/HARMONY-1984?page=comments#action_12453771 ] 
            
weldon washburn commented on HARMONY-1984:
------------------------------------------

If I understand it correctly, this test sets the heap to 130MB then attempts to allocate 128MB
of live objects.  DRLVM using the current GC fails this test.  It probably does not make sense
to redesign GCV4.1 to reduce internal overhead.

If DRLVM w/ GCV5 fails this test, does it imply a re-design of the GC?

Is this a test motivated by a real life application or maybe some sort of compliance test?

> GC allocation: overhead of block store is too high
> --------------------------------------------------
>
>                 Key: HARMONY-1984
>                 URL: http://issues.apache.org/jira/browse/HARMONY-1984
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: Windows XP, P4 3000HT
>            Reporter: Alexander D Shipilov
>            Priority: Minor
>         Attachments: GCAllocationOverheadzip.zip
>
>
> Not a bug, compatibility issue.
> Test description:
>  Run class which allocates 128M array by several bytes arrays of different sizes with
initial heap size (-Xmx option) 130M. Check if OutOfMemoryError not thrown.
> That's a compatibility issue - RI passes this test.
> Steps for reproducing:
> Unzip attached file. It contains sources and classes of test.
> If you like to re-compile test, use command in cygwin:
> $ find dir -name "*.java"|xargs javac
> where dir - is a directory of test (org e.g.)
> To run test in cycle use command:
> $ ./java -classpath "./;./junit.jar;" -Xmx130m -Dorg.apache.harmony.test.share.stress.ReliabilityRunner.params="org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTest
{}" org.apache.harmony.test.share.stress.ReliabilityRunner
> where ./java - is a tested jvm (harmony), ./junit.jar; - is a full path to the junit.jar
> Result on RI:
> $ java -classpath "./;./junit.jar;" -Xmx130m -Dorg.apache.harmony.test.share.st
> ress.ReliabilityRunner.params="org.apache.harmony.test.stress.gc.mem.MemoryTest
> 4.MemoryTest {}" org.apache.harmony.test.share.stress.ReliabilityRunner
> [debug] started null(org.apache.harmony.test.share.stress.ReliabilityRunner)
> [debug] timeToWork = 100, timeToAbort = 600
> [debug] started null(org.apache.harmony.test.share.stress.generator.Thread)
> [debug] Thread.setContext { org.apache.harmony.test.stress.gc.mem.MemoryTest4.
> emoryTest {} }
> [debug] Starting 1 threads
> [debug] completed null(org.apache.harmony.test.share.stress.generator.Thread)
> [debug] ThreadToRun.run()
> [debug] Generator.execute()
> [debug] class = org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTest
> [debug] org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTest { }
> [debug] started test(org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTe
> t)
> [debug] completed test(org.apache.harmony.test.stress.gc.mem.MemoryTest4.Memory
> est)
> [debug] Tests completed greacefully
> [debug] completed null(org.apache.harmony.test.share.stress.ReliabilityRunner)
> [debug] TimeKeeper is interrupted
> [debug] Test passed, time = 860
> Result on Harmony:
> $ ./java -classpath "./;./junit.jar;" -Xmx130m -Dorg.apache.harmony.test.share.
> stress.ReliabilityRunner.params="org.apache.harmony.test.stress.gc.mem.MemoryTe
> st4.MemoryTest {}" org.apache.harmony.test.share.stress.ReliabilityRunner
> [debug] started null(org.apache.harmony.test.share.stress.ReliabilityRunner)
> [debug] timeToWork = 100, timeToAbort = 600
> [debug] started null(org.apache.harmony.test.share.stress.generator.Thread)
> [debug] Thread.setContext { org.apache.harmony.test.stress.gc.mem.MemoryTest4.M
> emoryTest {} }
> [debug] Starting 1 threads
> [debug] completed null(org.apache.harmony.test.share.stress.generator.Thread)
> [debug] ThreadToRun.run()
> [debug] Generator.execute()
> [debug] class = org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTest
> [debug] org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTest { }
> [debug] started test(org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTes
> t)
> [debug] OutOfMemoryError is thrown on iteration 1015. Total size = 133169152
> [error] in test(org.apache.harmony.test.stress.gc.mem.MemoryTest4.MemoryTest)
> java.lang.OutOfMemoryError
> <no stack trace available>
> Harmony version:
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundation or
its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r467316, (Oct 27 2006), Windows/ia32/msvc 1310, release build
> http://incubator.apache.org/harmony

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message