User Tools

Site Tools


dido:public:ra:1.4_req:2_nonfunc:40_performance

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:ra:1.4_req:2_nonfunc:40_performance [2020/11/21 11:19]
34.229.223.205 ↷ Links adapted because of a move operation
dido:public:ra:1.4_req:2_nonfunc:40_performance [2021/07/30 15:40] (current)
murphy [About]
Line 1: Line 1:
-====== 4.2.7 Performance ======+====== 4.3.7 Performance ======
 [[dido:​public:​ra:​1.4_req:​2_nonfunc| Return to Non-Functional Requirements]] [[dido:​public:​ra:​1.4_req:​2_nonfunc| Return to Non-Functional Requirements]]
  
-  * **<color #​FF0000><​todo @char>​Please Review</​todo></​color>​** +===== About =====
 [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​performance]] is the ability of a system to accomplish the required functionality at or under the required specification limits. The limits are generally provided relative to time (i.e., so-many transactions per second, so-many updates per millisecond,​ so-many recorded entries per second, etc.) The specifications can also include accuracy, precision, precision or even efficiency of other dependent systems as requirements. The following are some examples of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​performancespec|performance specifications]]:​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​performance]] is the ability of a system to accomplish the required functionality at or under the required specification limits. The limits are generally provided relative to time (i.e., so-many transactions per second, so-many updates per millisecond,​ so-many recorded entries per second, etc.) The specifications can also include accuracy, precision, precision or even efficiency of other dependent systems as requirements. The following are some examples of [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​performancespec|performance specifications]]:​
  
Line 11: Line 10:
   * Amount of energy required to perform an activity   * Amount of energy required to perform an activity
   * The amount of computing resources required (i.e., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​cpu]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​computermemory]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​rom]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​storagedevice]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​bandwidth]],​ etc)   * The amount of computing resources required (i.e., [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​cpu]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​computermemory]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​rom]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​storagedevice]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​bandwidth]],​ etc)
-  * Time to process a computational task such as compression-decompression,​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​encryption|encryption]]-decryption,​ generate a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​unique_identifier|Unique ID (UID)]], serialize-deserialize,​ calculate an area, calculate a new trajectory, etc.+  * Time to process a computational task such as compression-decompression,​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​e:​encryption|encryption]]-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​decryption|decryption]], generate a [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​unique_identifier|Unique ID (UID)]], serialize-deserialize,​ calculate an area, calculate a new trajectory, etc.
   * Time to process a storage task such as store records, index the records, retrieve records, etc.   * Time to process a storage task such as store records, index the records, retrieve records, etc.
   * Time to access memory or cache such as direct memory access(DMA),​ the hit ratio   * Time to access memory or cache such as direct memory access(DMA),​ the hit ratio
   * Time to transfer data between components of a computer such as from memory to [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​cpu]],​ from CPU to graphics card, etc   * Time to transfer data between components of a computer such as from memory to [[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​cpu]],​ from CPU to graphics card, etc
  
 +Performance can also be viewed from the following perspectives:​
   * [[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance:​01_platform]]   * [[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance:​01_platform]]
   * [[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance:​02_application]]   * [[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance:​02_application]]
   * [[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance:​04_nework]]   * [[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance:​04_nework]]
  
 +===== DIDO Specifics =====
 +[[dido:​public:​ra:​1.4_req:​2_nonfunc:​40_performance | Return to Top]]
  
-===== DDS Specifics ===== +  ​<wrap hi><​color red> To be added/​expanded ​in future revisions ​of the DIDO RA </​color></​wrap>​
-[[dido:public:​ra:​1.4_req:​2_nonfunc:​40_performance| Return to Top]] +
- +
-One of the more common requirements for communications middleware is performance,​ usually specified as either [[dido:​public:​ra:​xapend:​xapend.a_glossary:​l:​latency]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​t:​thruput]] or a combination of both.  +
- +
-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​l:​latency]] is a measure of the total time it takes a data packet to travel from one [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​netnode]] to another network node. Commonly, it is the amount of time it takes for a data packet to travel round trip from one node to another node and back again. In essence, Latency refers to time interval or delay in a system to wait for inter-component communications. The duration of waiting time is called Latency.  +
- +
-[[dido:​public:​ra:​xapend:​xapend.a_glossary:​t:​thruput]] is a measure ​of the quantity of data transferred from one location to another in a given amount of time, and within the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dds]] context is the data transferred over the network.  +
- +
-Network performance is one characteristic that will vary between [[dido:​public:​ra:​xapend:​xapend.a_glossary:​d:​dds]] implementations. However in general, and for most DDS products, Latency is measured in microseconds. For some of the high-performance DDS implementations,​ the expected latencies are under 50 microseconds for network communication between network nodes and under 30 microseconds for "​on-box"​ communications. For embedded environments,​ such as [[dido:​public:​ra:​xapend:​xapend.a_glossary:​r:​rtos]],​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​networkstack]],​ or even the network hardware, a Latency is occurs because of various restrictions and limitations which can result in slightly higher Latencies, but still measuring Latencies in the microseconds.  +
- +
-Looking at Throughput, in general DDS will have Throughputs approaching the theoretical maximum limits of the network type. This holds true for networks rated at 1 megabit per second all the way up to 10 Gigabit per second. DDS takes advantage of  aggregation and batching of smaller data packets to further reduce overhead.  +
- +
-These Latency and Throughput numbers make DDS a good choice for all kinds of data and all kinds of data streams. +
- +
-The DDS specifications were written specifically for near real-time systems. Some examples of specification items result in high-performance communications:​ +
- +
-  * Specifies minimal data copies in memory - Buffer loaning +
-  * Specifies compact binary encoding on the wire - Reducing bytes on the network. There are no large [[dido:​public:​ra:​xapend:​xapend.a_glossary:​x:​xml]] or [[dido:​public:​ra:​xapend:​xapend.a_glossary:​j:​json]] strings being sent over the network. +
-  * Specifies light-weight notification mechanisms - Asynchronous and Synchronous options available +
-  * Data types are specified at compile time - Allowing optimized: [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​marshalling]],​ filtering, searching +
-  * Specifies [[dido:​public:​ra:​xapend:​xapend.a_glossary:​u:​udp]] [[dido:​public:​ra:​xapend:​xapend.a_glossary:​m:​multicast]] allowing for 1-to-many communications. Additionally,​ [[dido:​public:​ra:​xapend:​xapend.a_glossary:​b:​besteffort]] and reliable protocols can be used. This reduces network overhead and high performance [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​scalable|scalability]]. +
-  * Intermediate brokers are not required - providing direct [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​p2p]] communications +
  
-[[ddsf:​private:​cookbook:​02_body:​02_projreq:​nonfunctional:​09_performance| Return to top]] 
-<figure figtag> 
-{{  :​ddsf:​private:​cookbook:​02_body:​screen_shot_2020-06-29_at_1.05.33_pm.png?​700 ​ |}} 
-<​caption></​caption>​ 
-</​figure>​ 
  
 /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
dido/public/ra/1.4_req/2_nonfunc/40_performance.1605975547.txt.gz · Last modified: 2020/11/21 11:19 by 34.229.223.205