Opened 10 years ago

Closed 10 years ago

Last modified 7 years ago

#2781 closed defect (fixed)

OMEdit dislays info messages very slowly

Reported by: massimo ceraolo Owned by: Adeel Asghar
Priority: low Milestone: 1.9.4
Component: OMEdit Version: trunk
Keywords: Cc:

Description

Te fmu that I enclose runs correctly in OM. I run it from OMEdit.

However there is a strange thing:
before starting actual simulation, OM finds 354 glitches for which it emits warnings. What is really strange is that to show these 354 warnings the program (on my computer) spends as much as 36 seconds, while the time needed for the actual simulation is only 32 seconds!

I wonder whether there is some simple modification allowing faster message display.

Attachments (2)

AutoCreateWork_Test32rt.fmu (910.6 KB ) - added by massimo ceraolo 10 years ago.
output.docx (105.3 KB ) - added by massimo ceraolo 10 years ago.

Download all attachments as: .zip

Change History (13)

by massimo ceraolo, 10 years ago

Attachment: AutoCreateWork_Test32rt.fmu added

by massimo ceraolo, 10 years ago

Attachment: output.docx added

comment:1 by massimo ceraolo, 10 years ago

Maybe the issue has another aspect.
Consider the model:

model test
  Real x;
  parameter Real param = 1;
equation
  x = param * time;
end test;

The row:

parameter Real param = 1;

becomes, in the FMU generated by OM :

parameter Real param(start = 1.0, fixed = true);

The latter row creates a warning when the fmu is executed by OM.
If we have hundreds of parameters, this causes hundred of warnings are issued, creating a huge slowdown.

In addition (or as an alternative) of making warning display more efficient, an additional action maybe can be considered.

=> Either it is correct to convert converting the parameter value, as stated in the binding equation, into a start-fixed value, and in this case no warning should be issued when the fmu is executed,
=> or it is not normal practice, and in this case the FMI creation SW should be fixed.

Testw were made with r20668-RML

Version 0, edited 10 years ago by massimo ceraolo (next)

comment:2 by Adeel Asghar, 10 years ago

Status: newaccepted

I agree. This is a general problem with Qt's list with many items. The rendering of items makes the application response time very slow. To make this more worse I have customized list to show multi line messages which doubles the response time.

I propose that we should change the MessagesBrowser to a normal text/console window. This will make things a little better but still when the content of this window gets very huge then we might have performance slow down. The standard behavior of IDE's is to have a text limit on how much to display. For example, if you look at eclipse it has a text limit of 80000 characters when the output increase this size eclipse will start removing the output from the top.

I think a text based console window with characters limit will solve the problem.

comment:3 by massimo ceraolo, 10 years ago

Yes. I expect a text based console to be several times faster.
A fifo limit on characters is also good.
Another option that might be considered (I've seen sometimes, I believe in in some compiler) is that when the same message occurs several times it stops to be outputted. This reduces the amount of the output. After all the user doesn't want to see hundreds of lines all equal. If after, say 20-40 lines similar to each other, a row like "1500 more such messages" might be better.
If this technique is implemented, the limit on the console size (that is advisable to implement) might be reached only very rarely.

BTW, since you are also the expert of FMU, can you also have a look to my "comment 1"? I think it shows an issue, but I'm not sure what the issue really is.

comment:4 by Lennart Ochel, 10 years ago

I think the messages are not equal, since the parameter name and its start-value is part of the message. Otherwise identical messages get skipped already, as far as I know.
I agree that parameters should get exported with a binding instead of a start and fixed attribute combination. Therewith, the warnings will disappear anyway.

in reply to:  3 comment:5 by Adeel Asghar, 10 years ago

Replying to ceraolo:

Yes. I expect a text based console to be several times faster.
A fifo limit on characters is also good.
Another option that might be considered (I've seen sometimes, I believe in in some compiler) is that when the same message occurs several times it stops to be outputted. This reduces the amount of the output. After all the user doesn't want to see hundreds of lines all equal. If after, say 20-40 lines similar to each other, a row like "1500 more such messages" might be better.
If this technique is implemented, the limit on the console size (that is advisable to implement) might be reached only very rarely.

BTW, since you are also the expert of FMU, can you also have a look to my "comment 1"? I think it shows an issue, but I'm not sure what the issue really is.

I will check it.

in reply to:  3 comment:6 by Adeel Asghar, 10 years ago

Replying to ceraolo:

Yes. I expect a text based console to be several times faster.
A fifo limit on characters is also good.
Another option that might be considered (I've seen sometimes, I believe in in some compiler) is that when the same message occurs several times it stops to be outputted. This reduces the amount of the output. After all the user doesn't want to see hundreds of lines all equal. If after, say 20-40 lines similar to each other, a row like "1500 more such messages" might be better.
If this technique is implemented, the limit on the console size (that is advisable to implement) might be reached only very rarely.

BTW, since you are also the expert of FMU, can you also have a look to my "comment 1"? I think it shows an issue, but I'm not sure what the issue really is.

r23669 fixes the FMU warnings. Note that you are using co-simulation FMU with OM which is not fully supported yet.

comment:7 by Adeel Asghar, 10 years ago

In r23862 the info messages is changed from tree view to text. Options to add the fifo limit of characters will be added soon.

comment:8 by Adeel Asghar, 10 years ago

You can now set output limit to messages starting from r23882. You can even set more options like font and colors for different kind of messages via Tools->Options->Messages.

comment:9 by Adeel Asghar, 10 years ago

Resolution: fixed
Status: acceptedclosed

comment:10 by Dietmar Winkler, 9 years ago

Milestone: Futurepre1.9.4

It doesn't make sense to keep closed ticket in the "Future" milestone that were simply forgotten to assign to the correct milestone in the past.

comment:11 by Martin Sjölund, 7 years ago

Milestone: pre1.9.41.9.4

Removing the pre1.9.4 milestone in favor of 1.9.4.

Note: See TracTickets for help on using tickets.