View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0029218 | Open CASCADE | OCCT:Application Framework | public | 2017-10-12 14:51 | 2017-11-30 07:05 |
Reporter | kgv | Assigned To | bugmaster | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | no change required | ||
Product Version | 7.2.0 | ||||
Summary | 0029218: Application Framework - reading XML document calls LDOM parsing at least 3 times | ||||
Description | It seems, that reading XML document calls LDOM parser on entire file at least 3 times (2 times for probing/detecting format and 1 for actual reading). It looks like a redundant overhead for using XML format efficiently. | ||||
Steps To Reproduce | N/A. | ||||
Tags | No tags attached. | ||||
Test case number | |||||
|
Branch CR29218 has been created by szy. SHA-1: 7b23e1c5e9863386f40f4a12c985d65e996c0705 Detailed log of new commits: Author: szy Date: Wed Nov 22 12:54:33 2017 +0300 0029218: Application Framework - reading XML document calls LDOM parsing at least 3 times. //Optimization only |
|
Short explanation. Indeed the Parser is called 3 times. But 2 times it is called just for format identification and only third time for real document parsing. First two calls are very short. They read just a single element (XML_START_ELEMENT) from the document header (defined by tag "document format") and cancel parsing. There is no sufficient lost of performance during document reading. Nevertheless the process may be a little bit optimized in next way. There are some duplication caused by current persistence architecture logic. Method "CanRetrieve" calls methods methods 'Format()' which calls Parser and 'ReaderFromFormat()'. Returned values (Format and Reader) in fact are not used inside. They are used only for check that it is feasible. Later during call of the method 'CDF_Application::Retrieve()' methods are called once again. It is proposed to eliminate these calls in 'CanRetrieve' and keep only in 'Retrieve'. It is the simplest and the cheapest way which impacts only CDF_Application 'cxx'(see CR29218). Other approaches requires more sufficient modifications without sufficient benefit. Overlook it, please and give me your remarks. Thanks. |
|
>There is no sufficient lost of performance during document reading. OK, agree - there seems to be no performance issue due to multiple parsing - theWithoutRoot does the trick and only 3rd parsing takes considerable time (~ 10% of entire model reading; which depends on the model, of course). Though slow input stream (like unpacking on the fly / DRM / slow hardware) might increase overhead to some degree. |
|
Dear bugmaster, please close the issue since no fix is needed |
|
Branch CR29218 has been deleted by abv. SHA-1: 7b23e1c5e9863386f40f4a12c985d65e996c0705 |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-10-12 14:51 | kgv | New Issue | |
2017-10-12 14:51 | kgv | Assigned To | => mpv |
2017-10-12 14:53 | kgv | Relationship added | related to 0029219 |
2017-10-16 09:44 |
|
Assigned To | mpv => szy |
2017-11-22 12:53 |
|
Status | new => assigned |
2017-11-22 12:55 | git | Note Added: 0072392 | |
2017-11-22 15:19 |
|
Note Added: 0072399 | |
2017-11-22 15:19 |
|
Assigned To | szy => mpv |
2017-11-22 15:19 |
|
Status | assigned => resolved |
2017-11-22 15:19 |
|
Steps to Reproduce Updated | |
2017-11-23 14:27 | kgv | Note Added: 0072441 | |
2017-11-23 14:27 | kgv | Note Edited: 0072441 | |
2017-11-23 14:27 | kgv | Note Edited: 0072441 | |
2017-11-23 14:32 |
|
Assigned To | mpv => inv |
2017-11-23 14:33 |
|
Assigned To | inv => bugmaster |
2017-11-23 14:33 |
|
Note Added: 0072443 | |
2017-11-23 14:35 | kgv | Note Edited: 0072441 | |
2017-11-24 11:35 | bugmaster | Status | resolved => closed |
2017-11-24 11:35 | bugmaster | Resolution | open => no change required |
2017-11-30 07:03 |
|
Target Version | 7.4.0 => |
2017-11-30 07:05 | git | Note Added: 0072601 |