Fix org.apache.pig.test.TestInvoker.testSpeed
---------------------------------------------
Key: PIG-2569
URL: https://issues.apache.org/jira/browse/PIG-2569
Project: Pig
Issue Type: Bug
Reporter: Johnny Zhang
the Pig unit test org.apache.pig.test.TestInvoker.testSpeed pass sometimes and
fail sometimes. I think this test need further polish, look at the code:
{noformat}
@Test
public void testSpeed() throws IOException, SecurityException,
ClassNotFoundException, NoSuchMethodException {
EvalFunc<Double> log = new Log();
Tuple tup = tf_.newTuple(1);
long start = System.currentTimeMillis();
for (int i=0; i < 1000000; i++) {
tup.set(0, (double) i);
log.exec(tup);
}
long staticSpeed = (System.currentTimeMillis()-start);
start = System.currentTimeMillis();
log = new InvokeForDouble("java.lang.Math.log", "Double", "static");
for (int i=0; i < 1000000; i++) {
tup.set(0, (double) i);
log.exec(tup);
}
long dynamicSpeed = System.currentTimeMillis()-start;
System.err.println("Dynamic to static ratio: "+((float)
dynamicSpeed)/staticSpeed);
assertTrue( ((float) dynamicSpeed)/staticSpeed < 5);
}
{noformat}
I understand this test is trying to prevent the initicialization time of
InvokeForDouble doesn't take too long, but the ratio 5 is hardcoded, and there
is no solid logic behind it why it is 5. For my understand, when the server
resouce is low, ratio could be larger than 5, but it doesn't mean code has
problem. For our case, the code never change, but it pass in the first ru, but
fail in the second run.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira