Right off the bat I'd say try to get rid of the eval usage. Can you put the phone number into an object like this:
class PhoneNumber { private char digit0; private char digit1; ///...same for the rest of the digits public char getDigit0() { return digit0; } public char getDigit1() { return digit1; } } Then the conditions would look like this: digit0 == '$param' Behind the scenes hopefully this will optimize better. The use of eval won't optimize well. Are you using sequential mode? This might be a good candidate for that if setting the price does not trigger any other rules to fire. --- On Fri, 5/14/10, Antonio Anderson Souza <antonio...@gmail.com> wrote: From: Antonio Anderson Souza <antonio...@gmail.com> Subject: [rules-users] Jbilling Drools performance To: "Drools Users Mailing list" <rules-users@lists.jboss.org> Date: Friday, May 14, 2010, 1:28 PM Dear All, I'm deploying a JBilling using Drools in a Telecom Carrier in Brazil, and I'm using Decision tables in xls files to execute the pricing, my pricing table has about 40.000 rules, and I'm getting a terrible performance about 1.5 minute to execute the price of each CDR (Call Detail Record) mediated. Follow bellow a small piece of my decision table: RuleTable Padrao CONDITION CONDITION ACTION PRIORITY PricingField PricingManager manager salience name eval (strValue.charAt(0) == '$param') eval (strValue.charAt(1) == '$param') eval (strValue.charAt(2) == '$param') eval (strValue.charAt(3) == '$param') eval (strValue.charAt(4) == '$param') eval (strValue.charAt(5) == '$param') eval (strValue.charAt(6) == '$param') eval (strValue.charAt(7) == '$param') eval (strValue.charAt(8) == '$param') eval (strValue.charAt(9) == '$param') eval (strValue.charAt(10) == '$param') eval (strValue.charAt(11) == '$param') itemId setPrice($param) Campo Digito1 Digito2 Digito3 Digito4 Digito5 Digito6 Digito7 Digito8 Digito9 Digito10 Digito11 Digito12 ID do Item Preço Ordem destinationnumber 5 5 1 1 3 5 8 8 0 1 8 8 300 0.00000 1 destinationnumber 5 5 1 1 3 5 8 8 0 1 8 7 300 0.00000 2 destinationnumber 5 5 1 1 3 5 8 8 0 1 8 6 300 0.00000 3 destinationnumber 5 5 1 1 3 5 8 8 0 1 8 5 300 0.00000 4 destinationnumber 5 5 1 1 3 5 8 8 0 1 8 4 300 0.00000 5 destinationnumber 5 5 1 1 3 5 8 8 0 1 8 3 300 0.00000 6 destinationnumber 5 5 1 1 3 5 8 8 0 1 8 2 300 0.00000 7 destinationnumber 5 5 1 1 300 0.40000 8 Is it normal? Are there somebody using Jbilling in a similar way? Does anybody can help me? Best regards, Antonio Anderson Souza Voice Technology http://www.antonioams.com -----Inline Attachment Follows----- _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users