You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs-sources/target-rts/build.md
+16-1Lines changed: 16 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -173,4 +173,19 @@ Increasing the value will make each message bigger, which makes the application
173
173
#### OBSERVABLE
174
174
This setting controls if the application will be "observable" at run-time. Target observability includes different kinds of features such as debugging, tracing etc. Disabling this setting will improve application performance and decrease memory consumption, but you will then not be able to use any of the target observability features.
175
175
176
-
Default value: **1** (set to **0** to disable all target observability features)
176
+
Default value: **1** (set to **0** to disable all target observability features)
177
+
178
+
#### MIN_FREE_LIST_SIZE
179
+
This setting is related to the [free list](message-communication.md#message-memory-management). It defines the lower limit of the free list size. The free list will always contain at least this number of message blocks.
180
+
181
+
Default value: **20**
182
+
183
+
#### MAX_FREE_LIST_SIZE
184
+
This setting is related to the [free list](message-communication.md#message-memory-management). It defines the upper limit of the free list size, i.e. the maximum number of message blocks that the free list will contain.
185
+
186
+
Default value: **100**
187
+
188
+
#### RTMESSAGE_BLOCK_SIZE
189
+
This setting is related to the [free list](message-communication.md#message-memory-management). It defines how many messages each message block contains.
Copy file name to clipboardExpand all lines: docs-sources/target-rts/message-communication.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -117,10 +117,10 @@ There is a single free list in the application and it's implemented by the [RTRe
117
117
118
118
If the application needs to send a large number of messages at a faster pace than they can be dispatched, it can happen that the free list becomes empty. In that case another block of messages get allocated.
119
119
120
-
The size and behavior of the free list is controlled by a few constants in the TargetRTS implementation:
120
+
The size and behavior of the free list is controlled by a few TargetRTS settings:
121
121
122
122
* **RTMessageBlock::Size** Controls how many messages are contained in each message block.
123
-
* **maxFreeListSize** and **minFreeListSize** Controls how messages are freed by `RTController::freeMsg()`. If the size of the free list exceeds **maxFreeListSize** a number of messages are freed to reduce the size of the free list to **minFreeListSize**. Hence, the size of the free list is always kept in the range defined by these two constants.
123
+
* **maxFreeListSize** and **minFreeListSize** Controls how messages are freed by `RTController::freeMsg()`. If the size of the free list exceeds **maxFreeListSize** a number of message blocks are freed to reduce the size of the free list to **minFreeListSize**. Hence, the size of the free list is always kept in the range defined by these two constants.
124
124
125
125
Note that freeing a message doesn't deallocate its memory. Instead it is reset by calling `RTMessage::clear()` so it becomes ready to be used again. This means that the memory occupied by the free list will grow until a certain limit when it's big enough to always contain a free message when the application needs one. That limit is different for different applications, and if you want to avoid dynamic allocation of additional message blocks after application start-up, you may need to adjust the `RTMessageBlock::Size` constant.
Copy file name to clipboardExpand all lines: docs-sources/target-rts/versions.md
+17-1Lines changed: 17 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,7 @@ Below is a table that lists all changes made in the TargetRTS since version 8000
33
33
| 8002 |[Building without rtperl](#building-without-rtperl) <br> [JSON parser](#json-parser) <br> [Script for creating TargetRTS patch files](#script-for-creating-targetrts-patch-files) <br> [Pointers in JSON encoding/decoding](#pointers-in-json-encodingdecoding)|
34
34
| 8003 |[Align terminology in comments](#align-terminology-in-comments) <br> [Configurable max TCP Connections](#configurable-max-tcp-connections)|
35
35
| 8004 |[Improved implementation of JSON parser](#improved-implementation-of-json-parser) <br> [JSON encoding/decoding for RTByteBlock](#json-encodingdecoding-for-rtbyteblock) <br> [New target configuration for MacOS on AArch64](#new-target-configuration-for-macos-on-aarch64)|
A new decoder class [`RTJsonDecoding`](../targetrts-api/class_r_t_json_decoding.html) is now available for decoding messages and data from JSON. JSON produced from data by the JSON Encoder ([`RTJsonEncoding`](../targetrts-api/class_r_t_json_encoding.html)) can be decoded back to (a copy of) the original data.
@@ -62,4 +63,19 @@ The [`RTJsonParser`](../targetrts-api/class_r_t_json_parser.html) now has an imp
62
63
The [`RTJsonEncoding`](../targetrts-api/class_r_t_json_encoding.html) and [`RTJsonDecoding`](../targetrts-api/class_r_t_json_decoding.html) now support JSON encoding/decoding for objects of the [`RTByteBlock`](../targetrts-api/class_r_t_byte_block.html) class.
63
64
64
65
### New target configuration for MacOS on AArch64
65
-
A new target configuration for the Clang 15 compiler for MacOs with ARM processor is now available. It has the name `MacT.AArch64-Clang-15.x`.
66
+
A new target configuration for the Clang 15 compiler for MacOs with ARM processor is now available. It has the name `MacT.AArch64-Clang-15.x`.
67
+
68
+
### New free list macros
69
+
New TargetRTS configuration macros are now available in `include/RTConfig.h` for configuring the [free list](message-communication.md#message-memory-management). The new macros are [MIN_FREE_LIST_SIZE](build.md#min_free_list_size), [MAX_FREE_LIST_SIZE](build.md#max_free_list_size) and [RTMESSAGE_BLOCK_SIZE](build.md#rtmessage_block_size). Previously these configuration settings were hard-coded at a number of places in the TargetRTS implementation, but now they are handled like all other configuration settings.
70
+
71
+
### Static analysis warning reductions
72
+
Some static analysis tools previously reported a few warnings on the TargetRTS source code which now have been fixed.
73
+
74
+
- Reordered member variables according to their types to potentially reduce the size of the container struct or class on certain platforms
75
+
- Moved definition of [RTInjector](../targetrts-api/class_r_t_injector.html)::getInstance() from inline function to `RTInjector.cpp` to ensure it always returns a singleton object
76
+
- Removed the unused local variable `attached` in the implementation of [RTDebugger](../targetrts-api/class_r_t_debugger.html)::printActorInfo()
77
+
- Removed unused #includes
78
+
- Removed duplicated assignments of `remotePort` and `remoteIndex` in [RTProtocol](../targetrts-api/class_r_t_protocol.html)::reply()
79
+
- Changed type of the `need_lock` variable in [RTProtocol](../targetrts-api/class_r_t_protocol.html)::reply() from int to bool
80
+
- Removed dead code
81
+
- Improved initialization of a memory buffer in [RTToolSetObserver](../targetrts-api/class_r_t_toolset_observer.html)::sendTxBuffer()
0 commit comments