EHC ❯ Performance Regression in 1.7 breaks a perf test in JCache module
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Fixed
-
ehcache-core
-
-
drb
-
Reporter:
-
October 13, 2009
-
0
-
Watchers: 0
-
January 15, 2010
-
December 15, 2009
Description
JCacheTest.testReadWriteThreads in the JCache module is broken when using 1.7.0. It works with 1.6.2.
The problem is that under heavy threading, the performance for gets exceed 2 seconds.
Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2261 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2424 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2433 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2499 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2501 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2539 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2541 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2547 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2553 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2618 Oct 13, 2009 6:20:26 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2617 Oct 13, 2009 6:20:27 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2581 Oct 13, 2009 6:20:27 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2556 Oct 13, 2009 6:20:27 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2561 Oct 13, 2009 6:20:27 PM net.sf.ehcache.AbstractCacheTest$1 run INFO: Get time outside of allowed range: 2563
java.lang.Exception: Test thread failed. at net.sf.ehcache.AbstractCacheTest.runThreads(AbstractCacheTest.java:177) at net.sf.ehcache.jcache.JCacheTest.testReadWriteThreads(JCacheTest.java:1413) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99) at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71) at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35) at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at com.intellij.rt.junit4.Junit4TestMethodAdapter.run(Junit4TestMethodAdapter.java:62) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40) Caused by: java.lang.AssertionError: Get time outside of allowed range: 2563 at org.junit.Assert.fail(Assert.java:69) at org.junit.Assert.assertTrue(Assert.java:32) at net.sf.ehcache.jcache.JCacheTest$1.execute(JCacheTest.java:1332) at net.sf.ehcache.AbstractCacheTest$1.run(AbstractCacheTest.java:158)
Comments
gluck 2009-10-15
gluck 2009-10-16
cannot_reopen
Hung Huynh 2009-12-15
set the speed factor to 2 to compensate for different machines that run JCacheTest in the monkeys
There is a performance regression in 1.7. However this test is a threshold test. It is right at the threshold so fails some of the time. Have made the threshold a little higher. There is a separate JIRA for the regression in get.