Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EmfIndex Comparison"

Line 14: Line 14:
 
This test measured the time which is needed to index x-times the content of Ecore.ecore. (Containing 393 instances of EObject and 520 references)  
 
This test measured the time which is needed to index x-times the content of Ecore.ecore. (Containing 393 instances of EObject and 520 references)  
  
{| width="200" cellspacing="1" cellpadding="1" border="1"
+
{| border="1"
 
|-
 
|-
 
| <br>  
 
| <br>  
Line 38: Line 38:
 
This test measured the in memory size of the index. In the SAP case, paging was disabled  
 
This test measured the in memory size of the index. In the SAP case, paging was disabled  
  
{| cellspacing="1" cellpadding="1" border="1" style="width: 376px; height: 130px;"
+
{| border="1"
 
|-
 
|-
 
| <br>  
 
| <br>  
Line 62: Line 62:
 
=== Query All EObject and all EReferences  ===
 
=== Query All EObject and all EReferences  ===
  
{| width="200" cellspacing="1" cellpadding="1" border="1"
+
{| border="1"
 
|-
 
|-
 
| <br>  
 
| <br>  
Line 80: Line 80:
 
|}
 
|}
  
[[Image:EmfIndex_ResponseTimeAllEObjects.png]]<br>  
+
[[Image:EmfIndex ResponseTimeAllEObjects.png]]<br>  
  
 
=== Query all references targeting a certain resource  ===
 
=== Query all references targeting a certain resource  ===
  
{| width="200" cellspacing="1" cellpadding="1" border="1"
+
{| border="1"
 
|-
 
|-
 
| <br>  
 
| <br>  
 
| 1  
 
| 1  
| 2
+
| 2  
| 4
+
| 4  
| 8
+
| 8  
| 16
+
| 16  
| 32
+
| 32  
| 64
+
| 64  
 
| 128
 
| 128
 
|-
 
|-
Line 104: Line 104:
 
| 0,6 ms  
 
| 0,6 ms  
 
| 0,6 ms  
 
| 0,6 ms  
| 0,6 ms  
+
| 0,6 ms
 
|-
 
|-
 
| Itemis  
 
| Itemis  
 
| 5 ms  
 
| 5 ms  
 
| 537 ms  
 
| 537 ms  
| 3178 ms
+
| 3178 ms  
| 15190 ms
+
| 15190 ms  
| 65177 ms
+
| 65177 ms  
| 268899 ms
+
| 268899 ms  
 
| 1087066 ms
 
| 1087066 ms
 
|}
 
|}
  
[[Image:EmfIndex_ResponseTimeBackwardNavi.png]]<br>  
+
[[Image:EmfIndex ResponseTimeBackwardNavi.png]]<br>  
  
 
=== Query all instances of "EClass"  ===
 
=== Query all instances of "EClass"  ===
  
{| width="200" cellspacing="1" cellpadding="1" border="1"
+
{| border="1"
 
|-
 
|-
 
| <br>  
 
| <br>  
 
| 128  
 
| 128  
| 256
+
| 256  
| 512
+
| 512  
| 1024
+
| 1024  
 
| 2048
 
| 2048
 
|-
 
|-
Line 134: Line 134:
 
| 1,2 ms  
 
| 1,2 ms  
 
| 4 ms  
 
| 4 ms  
| 8,2 ms  
+
| 8,2 ms
 
|-
 
|-
 
| Itemis  
 
| Itemis  
 
| 72 ms  
 
| 72 ms  
 
| 142 ms  
 
| 142 ms  
| 287 ms
+
| 287 ms  
| 500 ms
+
| 500 ms  
 
| 1103 ms
 
| 1103 ms
 
|}
 
|}
  
[[Image:EmfIndex_ResponseTimeTypeQuery.png]]<br>
+
[[Image:EmfIndex ResponseTimeTypeQuery.png]]<br>
 +
 
 +
=== Navigation Query required for convenient API  ===
 +
 
 +
{| border="1"
 +
|-
 +
| eObject.getResourceDescriptor()
 +
| resource.getEObjects()
 +
| resource.getReferences()
 +
| reference.getTargetObject()
 +
 
 +
|-
 +
| 7 µs
 +
| 104 µs
 +
| 220 µs
 +
| 12 µs
 +
|}
 +
 
 +
[[Image:EmfIndex ResponseTimeNavigationQueries.png]]<br>  
  
 
<br>
 
<br>

Revision as of 04:05, 2 September 2009

This page is intended to compare the two index implementations form different viewpoints such as

  • API
  • Performance
  • Memory Consumption
  • How to build a convinient Query API on top of the low level API

Performance

Indexing

Indexing time

This test measured the time which is needed to index x-times the content of Ecore.ecore. (Containing 393 instances of EObject and 520 references)


1000 2000 3000
SAP 15,4 s 29,9 s 45,3 s
Itemis 14,6 s 28,4 s 43,5 s

EmfIndex indexingTime.png

Memory consumption

This test measured the in memory size of the index. In the SAP case, paging was disabled


1000 2000 3000
SAP 136 million bytes 278 million bytes 408 million bytes
Itemis 169 million bytes 340 million bytes 508 million bytes

EmfIndex AllInMemory.png

Query response time

Query All EObject and all EReferences


1000 2000 3000
SAP 0,3 s 0,45 s 0,65 s
Itemis 1,4 s 2,2 s 3,3 s

EmfIndex ResponseTimeAllEObjects.png

Query all references targeting a certain resource


1 2 4 8 16 32 64 128
SAP 0,6 ms 0,6 ms 0,6 ms 0,6 ms 0,6 ms 0,6 ms 0,6 ms 0,6 ms
Itemis 5 ms 537 ms 3178 ms 15190 ms 65177 ms 268899 ms 1087066 ms

EmfIndex ResponseTimeBackwardNavi.png

Query all instances of "EClass"


128 256 512 1024 2048
SAP 0,4 ms 0,8 ms 1,2 ms 4 ms 8,2 ms
Itemis 72 ms 142 ms 287 ms 500 ms 1103 ms

EmfIndex ResponseTimeTypeQuery.png

Navigation Query required for convenient API

eObject.getResourceDescriptor() resource.getEObjects() resource.getReferences() reference.getTargetObject()
7 µs 104 µs 220 µs 12 µs

EmfIndex ResponseTimeNavigationQueries.png


Back to the top