Hi,
I observed a real dramatic difference in performace when using the
following two ways to get the same result.
(bind ?value (?stringObject codePointAt 0))
(bind ?value (Helper.stringCodePointAt ?stringObject 0))
I did some not so scientific measurements with the following clp:
(deftemplate
Dear all,
i have performance problems asserting 11000 Facts in a for loop.
I am using engine.assert(fact) and it takes much longer than very thing
else.
Regards Jessica
--
Freundliche Grüße / Kind regards
Jessica Kampmann
Software-Entwicklung
Tel.: +49 40 398053 51
Fax: +49 40 398053 53
All of your pattern matching happens during calls to assert, modify,
and retract. You have probably written a rule that depends
polynomially on the number of facts. Look, for example at the FAQ
question My expert system is slow. How do I speed it up?
without seeing an example of the rules, it's hard to know what is going on.
if you provide an example, it will be easier for others to provide tips
peter
On Mon, Nov 17, 2008 at 3:53 AM, Jessica Kampmann
[EMAIL PROTECTED] wrote:
Dear all,
i have performance problems asserting 11000 Facts in
Message-
From: [EMAIL PROTECTED] [mailto:owner-jess-
[EMAIL PROTECTED]
On Behalf Of Ernest Friedman-Hill
Sent: Friday, August 29, 2008 2:26 PM
To: jess-users
Subject: Re: JESS: Performance question
On Aug 29, 2008, at 12:58 PM, [EMAIL PROTECTED] wrote:
The performance of the second version
Is the equality comparison using == or equals?
-Russ
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Ernest Friedman-Hill
Sent: Friday, August 29, 2008 2:26 PM
To: jess-users
Subject: Re: JESS: Performance question
On Aug 29, 2008, at 12:58 PM, [EMAIL
PROTECTED]
On Behalf Of Ernest Friedman-Hill
Sent: Friday, August 29, 2008 2:26 PM
To: jess-users
Subject: Re: JESS: Performance question
On Aug 29, 2008, at 12:58 PM, [EMAIL PROTECTED] wrote:
The performance of the second version is much slower, especially as
the number of facts increases. Is this just
I have the following scenario. I have about 72K facts, divided into two
groups, A and B. I'm looking to find the pairs of A and B based on the
relationship between one of the slots. In one case, my test is equality
between the two slots and in another it is based on a function that
checks for
On 8/29/08, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
(MetricValue (name foo)
(group A)
(testslot ?A_testslot)
)
(MetricValue (name foo)
(group B)
(testslot ?B_testslot:(similar ?B_testslot ?A_testslot)
)
)
is not similar to Foo=1;Bar=3). I'm using the
semi-colon to distinguish the members of the set.
-Russ
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Wolfgang Laun
Sent: Friday, August 29, 2008 1:36 PM
To: jess-users@sandia.gov
Subject: Re: JESS
On Aug 29, 2008, at 12:58 PM, [EMAIL PROTECTED] wrote:
The performance of the second version is much slower, especially as
the number of facts increases. Is this just the overhead of my
function call vs. equals. Does anyone have suggestions about
possible restructuring of the problem that
Dear all,
I like the idea to with my Jess rules with JessML but I am a bit
concerned about the performance. Does it take longer to process(fire)
rules if they are written in JessML.
Regards
Jessica
--
Freundliche Grüße / Kind regards
Jessica Kampmann
Software-Entwicklung
Tel.: +49 40
The exact point at which one is better than the other would depend on
the number of partial matches in memory. To check 91 slots for
modification, Jess has to call 91 getter functions and do 91 value
comparisons. If there are very few partial matches, you can easily
imagine that the amount
Hello,
I was wondering what is the performance trade-off between
rete.updateObject(myObject);
and
rete.updateObject(myObject, slot);
When I update an object underlying a shadow fact, I record the list of
updated fields and call updateObject only at the end. If only one field
was
Hi All,
I am having an issue writing rules for an application that has some
interesting requirements. Consider that we are categorizing say news feeds
into specific categories based on specific rule matches (news article contains
the fact NBA ,or NFL, or NHL, etc... so categorize as a
clips
file each. Most rules are smaller, such as 2k clips files.
Thanks,
Amrinder
--
View this message in context: http://www.nabble.com/Jess-
performance-on-Sparc-Solaris-tf4152555.html#a11813543
Sent from the Jess mailing list archive at Nabble.com
file each. Most rules are smaller, such as 2k clips files.
Thanks,
Amrinder
--
View this message in context:
http://www.nabble.com/Jess-performance-on-Sparc-Solaris-tf4152555.html#a11813543
Sent from the Jess mailing list archive at Nabble.com
MIPS.]
(ii) Using another Java application for bench marking would be a good idea.
Thanks for your time,
Regards,
Amrinder
--
View this message in context:
http://www.nabble.com/Jess-performance-on-Sparc-Solaris-tf4152555.html#a11818528
Sent from the Jess mailing list archive at Nabble.com
] [mailto:[EMAIL PROTECTED]
On Behalf Of Seth Ladd
Sent: Friday, March 03, 2006 6:16 PM
To: jess-users@sandia.gov
Subject: Re: JESS: performance diff win vs linux
On 3/3/06, [EMAIL PROTECTED] [EMAIL PROTECTED]
wrote:
I'm getting significantly different performance on windows, where I do
development
With help from this group I found and fixed the problem I had with Jess
performance. (Thanks!) It turned out that there was one rule that was
giving me trouble.
But it isn't obvious to me why the rule was so bad. I constructed a
small experiment. It appears that Jess is not as efficient
I think Peter Lin wrote:
it is because you're doing combinatorial pattern matching. that rule
is telling the engine to match every new instance with all existing
facts.
Jess is actually pretty smart about this. It does far fewer actual
comparisons than you'd expect due to indexing in
I think Timothy Redmond wrote:
But it isn't obvious to me why the rule was so bad. I constructed a
small experiment. It appears that Jess is not as efficient if it has
a rule where a java object is getting matched with another java object.
OK, I remember now what's going on here. The
Has anyone ever thought about using the Sting.intern() method? It's
been used with other rulebased systems to ensure string location. I
have an example somewhere that I'll try and look up when I get back
from supper. If I don't do it tonight, someone remind me. Terrible
memory problems at my
I think James Owen jco wrote:
Has anyone ever thought about using the Sting.intern() method? It's
been used with other rulebased systems to ensure string location. I
have an example somewhere that I'll try and look up when I get back from
supper. If I don't do it tonight, someone remind
thanks --- I do know that it does ensure the proper String object when
used in a rulebase. Do you have any idea about what kind of
performance hit you get compared to a Hashtable lookup?
[EMAIL PROTECTED] wrote:
I think James Owen jco wrote:
Has anyone ever thought about using
Thanks for the help with this. I now have a better concept of what to
expect and also I have some ideas of how to determine where the problem
lies.
-Timothy
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL
We are doing prototyping work on a tool that uses the Jess rule engine.
We are following the development model:
Half Jess language scripts, with a substantial amount of Java code
providing custom commands and APIs; main() provided by Jess.
We have done some early performance experiments to
I think Timothy Redmond wrote:
- Is there a good Jess rule profiler (as opposed to a java profiler)?
There will be tools in Charlemagne for exploring performance
issues. Right now using the view command, or its non-graphical
equivalent the matches command, can give you an idea where things
Hello Ernest,
Here's where the problem lies. The one-engine/one-user architecture is
inherently inefficient. The simplest change that would improve things
would be to still use one engine per user, but as you suggest, cache
the engines with the rules loaded. A (reset) before each user would
be
I think Marcus Schlappa wrote:
To save time for building the rete network each time,
I'd like to cache the engine state with the rules already loaded as you
said before ...
1) At application startup, create a bunch of jess.Rete objects.
2) Load the rules into each one.
3) Store them in
I did that once. Long, long ago in a land far, far away. A place
called VEA at FedEx. Virtual Enterprise Architecture. A time before
J2EE. J2EE solved the problem that I had solved way back then using
the pre-alpha version of Advisor, now called Blaze Advisor. By the
time you get through with
I think Marcus Schlappa wrote:
Hello,
How can i cache the engine with the rules loaded?
Do you mean the jess-commands bload and bsave?
By engine we mean a single instance of the jess.Rete class. You can
create as many instances of this class as you wish, and load each one
with rules.
Each individual rule engine has basically two mutexes: one for the
working memory, and one for the execution engine. One
execution thread can be firing rules, while other threads are
adding/removing/modifying data in the working memory. Rules can be
firing while working memory is being modified,
I think Ryan Crumley wrote:
PFONT SIZE=2 FACE=ArialI am using jess from a web environment where many jess
engines (1 per user, current load testing involves 100 users) are in operation at a
time. Each time a jess engine is created my .clp files are parsed and loaded. Is it
possible to
or if there are other areas of the rules that could use attention.
Thanks again,
ryan
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 19, 2003 7:23 AM
To: [EMAIL PROTECTED]
Subject: Re: JESS: jess performance
I think Ryan Crumley wrote:
PFONT
I think Judson, Ross wrote:
EJFried - please hurry up with that book! The bigger my prototype gets
the more I need it!
Here are a few notes:
1. Are there any sources of information for performance tuning? Some of
basics are documented (put minimal matching rules first, most changing
EJFried - please hurry up with that book! The bigger my prototype gets
the more I need it!
Here are a few notes:
1. Are there any sources of information for performance tuning? Some of
basics are documented (put minimal matching rules first, most changing
matches last), but...are there any
Hi Dheeraj,
Remember that Jess's working memory is like a database, in that it is
indexed for fast retrieval. When you define a set of rules, you're
also simultaneously defining the indexes that the database will
use. When you put information into the databse via assert or
definstance, the
Hi,
I have asserted a fact, run the engine and removed the fact. There is a
rule in the engine which works on the fact. Now, if you see the output
below, The time taken by the rule is very large the first time. Any
clues why ? (I have retracted the fact after the first time the rule has
executed.
The output below means more to you than to me, I'm sure, but I can't
get much out of it. It's not clear whether the time is consumed by the
assert, run, or retract in either case, and this is probably
important. You don't show the relevant rules, and those could be
important. You don't show the
Hi,
I would like some useful pointers on how to implement Jess in an env where we
would a million rules.. meaning each method on an object will have a
corresponding rule. What kind of performance can be expected wrt
1. The number of rules
2. The number of .clp files each having simple rules.
Any
Hi,
I would like to know the parameters in the header mean in the presentation
at
http://aaaprod.gsfc.nasa.gov/teas/Jess/JessUMBC/sld023.htm
about performance.
Thanks,
Adarsh
Problem names: WG(24) = wordgame.clp, 24 runs; ZB = zebra.clp,
HARD=hard.clp, MAB=fullmab.clp.
I think Adarsh Jain wrote:
Hi,
I would like to know the parameters in the header mean in the presentation at
http://aaaprod.gsfc.nasa.gov/teas/Jess/JessUMBC/sld023.htm
about performance.
Hello Jess users
I have tried to implement an expert system in Jess. I have generated about
3000 facts. The structure was like deffacts and here is one typical example:
(deffact node35 (link "/abc") (name "abc") (super "/"))
All theses links are linked by the slot super and link. I have created
There are indeed such rules; some are in the Jess manual (esp. the
Rete algorithm chapter) and FAQ. The most important rules are to be as
specific as possible in matching the earliest patterns on a LHS, and
to put the most-often-changing facts at the end of a LHS.
In this case, probably you've
er of user function calls from 4-14 calls to
2-4.
I like to make sure that I am not missing any major performance improvement
opportunities. Also any suggestions regarding Jess performance testing will
be deeply appreciated.
Thanks,
Dari
formance improvement
opportunities. Also any suggestions regarding Jess performance testing will
be deeply appreciated.
Thanks,
Dariush Navabi
-
Ernest Friedman-Hill
Distributed Systems ResearchPhone: (925) 294-2154
Hi,
Thanx for the printing problem : I had only to open the output file. Now more
questions:
I am writing an agent to process Web pages in a NT environment and I'm having problems
with performance. Memory usage is OK, but although CPU usage rises from 2% to 100, it
is
still very slow: in
Hi !
I have used 4.4 before and recently upgraded to the new version.
My app uses quite simple assert/retract statements, disk i/o, some
pattern matching on LHS but nothing really extraordinary.
With the new version I took performance hits about the factor 4 !
Are there any known issues
"Ernest" == Ernest Friedman-Hill [EMAIL PROTECTED] writes:
Ernest Hi Norman, Well, in general, as you can imagine, my efforts
Ernest have been directed towards improving, rather than degrading,
Ernest performance...
Ernest This being said, I'm very interested in your report. It's
Ernest
Hi David,
Have you ever tried to profile your application? I've used OptimizeIt
for this purpose (www.optimizeit.com) and am reasonably happy with
it. I'd be interested to know where the bottlenecks are in your
particular program. Jess can be used in so many ways that every
program is different.
51 matches
Mail list logo