Jump to content

In Place Element structure: Difference between revisions

From LabVIEW Wiki
Started page
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{stub}}
{{stub}}
{{TOCright}}
{{TOCright}}
{{LabVIEW Palette Object Information|palette=Functions Palette/Programming/Structures{{!}}Structures palette|type=structure}}
{{LabVIEW Palette Object Information|palette=Functions Palette/Programming/Structures{{!}}Structures palette|type=structure|icon=Functions_Palette_-_Programming_-_Structures_-_In_Place_Element_Structure.png}}


The '''In Place Element Structure''' controls how the LabVIEW compiler performs certain operations and, in some cases, increases memory and VI efficiency. Use the In Place Element structure when you operate on a data element within an array, cluster, variant, or waveform without requiring the LabVIEW compiler to copy data values and maintain those values in memory. You also can use this structure to operate on any data type that you want to maintain within the same data space in memory. Right-click the border of the structure and select the border node that matches the operation you want to perform.
The '''In Place Element Structure''' controls how the LabVIEW compiler performs certain operations and, in some cases, increases memory and VI efficiency. Use the In Place Element structure when you operate on a data element within an array, cluster, variant, or waveform without requiring the LabVIEW compiler to copy data values and maintain those values in memory. You also can use this structure to operate on any data type that you want to maintain within the same data space in memory. Right-click the border of the structure and select the border node that matches the operation you want to perform.
Line 18: Line 18:
You can right-click a node and select Mark As Modifier to indicate that LabVIEW modifies the data you wire to the node, even if the block diagram does not indicate a modification of data occurs. The '''Mark As Modifier'' option is useful when you work with dynamic dispatch terminals. While the parent implementation of a dynamic dispatch subVI might not modify the data wired to the node, a child implementation might modify the data. Using the '''Mark As Modifier''' option then optimizes performance by minimizing the number of copies of the data LabVIEW creates.  
You can right-click a node and select Mark As Modifier to indicate that LabVIEW modifies the data you wire to the node, even if the block diagram does not indicate a modification of data occurs. The '''Mark As Modifier'' option is useful when you work with dynamic dispatch terminals. While the parent implementation of a dynamic dispatch subVI might not modify the data wired to the node, a child implementation might modify the data. Using the '''Mark As Modifier''' option then optimizes performance by minimizing the number of copies of the data LabVIEW creates.  


'''Note:''' The '''Mark As Modifier''' option does not prevent access to the data and cannot be used as a synchronization method. Instead, use [[Functions Palette/Programming/Synchronization/Semaphores|emaphores]] or [[Data flow|data flow]] to control access to protected data and avoid race conditions.
'''Note:''' The '''Mark As Modifier''' option does not prevent access to the data and cannot be used as a synchronization method. Instead, use [[Functions Palette/Programming/Synchronization/Semaphores|Semaphores]] or [[Data flow|data flow]] to control access to protected data and avoid race conditions.


== Best practice ==
== Best practice ==

Latest revision as of 15:37, 25 June 2020

Object information
Owning palette(s) Structures palette
Type Structure
Requires Basic Development Environment
Icon

The In Place Element Structure controls how the LabVIEW compiler performs certain operations and, in some cases, increases memory and VI efficiency. Use the In Place Element structure when you operate on a data element within an array, cluster, variant, or waveform without requiring the LabVIEW compiler to copy data values and maintain those values in memory. You also can use this structure to operate on any data type that you want to maintain within the same data space in memory. Right-click the border of the structure and select the border node that matches the operation you want to perform.

Usage

Right-click the border of the In Place Element structure and select from the following nodes to add to the structure border:

  • Array Index / Replace Elements border node
  • Array Split / Replace Subarrays border node
  • Unbundle / Bundle Elements border node
  • Waveform Unbundle / Bundle Elements border node
  • Variant To / From Element border node
  • In Place In / Out Element border node
  • Data Value Reference Read / Write Element border node
  • Variant Attribute Get / Replace border node

You can right-click a node and select Mark As Modifier to indicate that LabVIEW modifies the data you wire to the node, even if the block diagram does not indicate a modification of data occurs. The Mark As Modifier option is useful when you work with dynamic dispatch terminals. While the parent implementation of a dynamic dispatch subVI might not modify the data wired to the node, a child implementation might modify the data. Using the Mark As Modifier' option then optimizes performance by minimizing the number of copies of the data LabVIEW creates.

Note: The Mark As Modifier option does not prevent access to the data and cannot be used as a synchronization method. Instead, use Semaphores or data flow to control access to protected data and avoid race conditions.

Best practice

History

Version Change(s)
LabVIEW 2018 More info to come.

See Also

External Links