cxbrooks / test

Second test for bugzilla to git
0 stars 0 forks source link

Performance: check type inference cost each time a model is opened #63

Open cxbrooks opened 17 years ago

cxbrooks commented 17 years ago

Note: the issue was created automatically with bugzilla2github tool

Original bug ID: BZ#69 From: @cxbrooks Reported version: 6.1.devel CC: bert.rodiers@gmail.com, pt-dev@chess.eecs.berkeley.edu

cxbrooks commented 17 years ago

From the Rome May 2007 visit: Performance: 1) type inference cost each time the model is open

cxbrooks commented 16 years ago

The type inference (method resolveTypes() of Manager) only happens at the end of the preinitialize phase and not when opening models. The problem is probably that large models take too much time to open (due to for example parsing the moml), but not due to the type inference.

cxbrooks commented 16 years ago

Created attachment 21 A large model

I tried to see what's going on when opening large projects, hence I created a project that is quite large (more than 12000 actors). Of course I don't whether this corresponds to the models which they used.

Attached file: TypeInference.rar (application/octet-stream, 25487 bytes) Description: A large model

cxbrooks commented 16 years ago

Extended the CC list that the group also gets my spam, uhm, I mean useful comments.

cxbrooks commented 16 years ago

Created attachment 23 A picture that shows what's going on when you open the large model I attached earlier.

It shows that almost all time goes to parsing the model.

Attached file: openingLargeProject.JPG (image/jpeg, 103879 bytes) Description: A picture that shows what's going on when you open the large model I attached earlier.

cxbrooks commented 16 years ago

Edward and I were talking about this and we think that perhaps in the profile all the time is being assigned to the xml parser because of the callbacks. I'm not totally sure that all the time is being consumed in the by the xml parser.

The next step is to work on creating a way to create models of various sizes that use Publisher/Subscriber and models of various sizes that use ports instead of Publisher/Subscriber

               ------------
               |          |
               | pub1 sub9|
               ------------
               /          
           ---------------------
           |sub3-pub4 sub7-pub8|
           ---------------------
              /            
          ----------  
          |sub5-pub6|      
          ----------

Where pub1 publishes to sub3 pub4 publishes to sub5 pub6 publishes to sub7 pub8 publishes to sub9

Or something similar. An then we can parameter the model creation so that we get different numbers of levels of hierarchy or different numbers of actors or composites per level.