I have tried couple of things as suggested by the rules user list. It
has improved the execution time of hello world example to some extent.
<br><br>1. Moving fireallRules() out of the loop - helped very little, execution time was almost same(150 millisecs less). - 10.35 secs
<br>2. Commenting out the audit logger used in the example - cut the execution time by half  5.67 secs
<br>3. Removing system.outs from rules - reduces 2 secs of execution time - 3.433
<br><br>The final execution time for HelloWorldExample in drools5.0 is
3.4 secs and in Java is  256 milli secs. (I am attaching the java
version of drools example also to this email) .
<br><br>package org.drools.examples;
<br><br>import java.util.List;
<br><br>import org.drools.examples.HelloWorldExample.Message;
<br><br>public class HelloWorldJavaExample {
<br>        public static long starttime = 0;
<br>         public static long endtime =0;
<br>        public static void hello(Message message)
<br>        {
<br>                System.out.println(message.getMessage());
<br>                message.setMessage(&quot;Good Bye Cruel World&quot;);
<br>                message.setStatus(Message.GOODBYE);
<br>                goodbye(message);
<br>        }
<br>        public static void goodbye(Message message)
<br>        {
<br>                System.out.println(message.getMessage());
<br>                
<br>        }
<br>        /**
<br>         * @param args
<br>         */
<br>        public static void main(String[] args) {
<br>                // TODO Auto-generated method stub
<br>                starttime = System.currentTimeMillis();
<br>                for(int u=0;u&lt;10000;u++)
<br>                {
<br>                        final Message message = new Message();
<br>                        message.setMessage(&quot;Hello World&quot;);
<br>                        message.setStatus(Message.HELLO);
<br>                        if(message.getMessage().equalsIgnoreCase(&quot;Hello World&quot;))
<br>                        {
<br>                                hello(message);
<br>                        }
<br>                }
<br>                
<br>                 endtime = System.currentTimeMillis();
<br>             System.out.println(&quot;execution time in main is &quot;+(endtime-starttime));
<br>        }
<br>        public static class Message {
<br>                public static final int HELLO = 0;
<br>                public static final int GOODBYE = 1;
<br>                private String message;
<br><br>                private int status;
<br><br>                public Message() {
<br><br>                }
<br><br>                public String getMessage() {
<br>                        return this.message;
<br>                }
<br><br>                public void setMessage(final String message) {
<br>                        this.message = message;
<br>                }
<br><br>                public int getStatus() {
<br>                        return this.status;
<br>                }
<br><br>                public void setStatus(final int status) {
<br>                        this.status = status;
<br>                }
<br>                
<br>                public static Message doSomething(Message message) {
<br>                        return message;
<br>                }
<br><br>                public boolean isSomething(String msg, List list) {
<br>                        list.add(this);
<br>                        return this.message.equals(msg);
<br>                }
<br>        }
<br><br>}
<br><br>thanks for your suggestions. 
<br>ABRA2
<br>