rclnodejs icon indicating copy to clipboard operation
rclnodejs copied to clipboard

Performance: make sure large arrays are all processed effeciently

Open kenny-y opened this issue 7 years ago • 1 comments

Array usage samples:

Searching 162 files for "[]"

ros2_ws/ros2_source/src/ros2/common_interfaces/actionlib_msgs/msg/GoalStatusArray.msg:
    2  # by an action server
    3  std_msgs/Header header
    4: GoalStatus[] status_list
    5  

ros2_ws/ros2_source/src/ros2/common_interfaces/diagnostic_msgs/msg/DiagnosticArray.msg:
    1  # This message is used to send diagnostic information about the state of the robot.
    2  std_msgs/Header header # for timestamp
    3: DiagnosticStatus[] status # an array of components being reported on
    4  

ros2_ws/ros2_source/src/ros2/common_interfaces/diagnostic_msgs/msg/DiagnosticStatus.msg:
   16  string hardware_id
   17  # An array of values associated with the status.
   18: KeyValue[] values
   19  
   20  

ros2_ws/ros2_source/src/ros2/common_interfaces/diagnostic_msgs/srv/SelfTest.srv:
    2  string id
    3  byte passed
    4: DiagnosticStatus[] status
    5  

ros2_ws/ros2_source/src/ros2/common_interfaces/geometry_msgs/msg/Polygon.msg:
    1  # A specification of a polygon where the first and last points are assumed to be connected
    2  
    3: Point32[] points
    4  

ros2_ws/ros2_source/src/ros2/common_interfaces/geometry_msgs/msg/PoseArray.msg:
    3  std_msgs/Header header
    4  
    5: Pose[] poses
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/nav_msgs/msg/GridCells.msg:
    4  float32 cell_width
    5  float32 cell_height
    6: geometry_msgs/Point[] cells
    7  

ros2_ws/ros2_source/src/ros2/common_interfaces/nav_msgs/msg/OccupancyGrid.msg:
    8  # The map data, in row-major order, starting with (0,0).  Occupancy
    9  # probabilities are in the range [0,100].  Unknown is -1.
   10: int8[] data
   11  

ros2_ws/ros2_source/src/ros2/common_interfaces/nav_msgs/msg/Path.msg:
    2  
    3  std_msgs/Header header
    4: geometry_msgs/PoseStamped[] poses
    5  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/BatteryState.msg:
   44  bool    present          # True if the battery is present
   45  
   46: float32[] cell_voltage   # An array of individual cell voltages for each cell in the pack
   47                           # If individual voltages unknown but number of cells known set each to NaN
   48  string location          # The location into which the battery is inserted. (slot number or plug)

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/CameraInfo.msg:
   62  # The distortion parameters, size depending on the distortion model.
   63  # For "plumb_bob", the 5 parameters are: (k1, k2, t1, t2, k3).
   64: float64[] d
   65  
   66  # Intrinsic camera matrix for the raw (distorted) images.

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/ChannelFloat32.msg:
   22  # The values array should be 1-1 with the elements of the associated
   23  # PointCloud.
   24: float32[] values
   25  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/CompressedImage.msg:
   12                               #     jpeg, png
   13  
   14: uint8[] data                 # Compressed image buffer
   15  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/Image.msg:
   24  uint8 is_bigendian    # is this data bigendian?
   25  uint32 step           # Full row length in bytes
   26: uint8[] data          # actual matrix data, size is (step * rows)
   27  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/JointState.msg:
   20  std_msgs/Header header
   21  
   22: string[] name
   23: float64[] position
   24: float64[] velocity
   25: float64[] effort
   26  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/Joy.msg:
    5  
    6  # The axes measurements from a joystick.
    7: float32[] axes
    8  
    9  # The buttons measurements from a joystick.
   10: int32[] buttons
   11  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/JoyFeedbackArray.msg:
    1  # This message publishes values for multiple feedback at once.
    2: JoyFeedback[] array
    3  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/LaserEcho.msg:
    2  # to be used separately.
    3  
    4: float32[] echoes  # Multiple values of ranges or intensities.
    5                    # Each array represents data from the same angle increment.
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/LaserScan.msg:
   24  float32 range_max            # maximum range value [m]
   25  
   26: float32[] ranges             # range data [m]
   27                               # (Note: values < range_min or > range_max should be discarded)
   28: float32[] intensities        # intensity data [device-specific units].  If your
   29                               # device does not provide intensities, please leave
   30                               # the array empty.

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/MultiDOFJointState.msg:
   21  std_msgs/Header header
   22  
   23: string[] joint_names
   24: geometry_msgs/Transform[] transforms
   25: geometry_msgs/Twist[] twist
   26: geometry_msgs/Wrench[] wrench
   27  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/MultiEchoLaserScan.msg:
   24  float32 range_max            # maximum range value [m]
   25  
   26: LaserEcho[] ranges           # range data [m]
   27                               # (Note: NaNs, values < range_min or > range_max should be discarded)
   28                               # +Inf measurements are out of range
   29                               # -Inf measurements are too close to determine exact distance.
   30: LaserEcho[] intensities      # intensity data [device-specific units].  If your
   31                               # device does not provide intensities, please leave
   32                               # the array empty.

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/PointCloud.msg:
    7  # Array of 3d points. Each Point32 should be interpreted as a 3d point
    8  # in the frame given in the header.
    9: geometry_msgs/Point32[] points
   10  
   11  # Each channel should have the same number of elements as points array,
   12  # and the data in each channel should correspond 1:1 with each point.
   13  # Channel names in common practice are listed in ChannelFloat32.msg.
   14: ChannelFloat32[] channels
   15  

ros2_ws/ros2_source/src/ros2/common_interfaces/sensor_msgs/msg/PointCloud2.msg:
   17  
   18  # Describes the channels and their layout in the binary data blob.
   19: PointField[] fields
   20  
   21  bool    is_bigendian # Is this data bigendian?
   22  uint32  point_step   # Length of a point in bytes
   23  uint32  row_step     # Length of a row in bytes
   24: uint8[] data         # Actual point data, size is (row_step*height)
   25  
   26  bool is_dense        # True if there are no invalid points

ros2_ws/ros2_source/src/ros2/common_interfaces/shape_msgs/msg/Mesh.msg:
    1  # Definition of a mesh.
    2  
    3: # List of triangles; the index values refer to positions in vertices[].
    4: MeshTriangle[] triangles
    5  
    6  # The actual vertices that make up the mesh.
    7: geometry_msgs/Point[] vertices
    8  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/ByteMultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: byte[]            data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/Float32MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: float32[]         data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/Float64MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: float64[]         data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/Int16MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: int16[]           data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/Int32MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: int32[]           data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/Int64MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: int64[]           data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/Int8MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: int8[]            data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/MultiArrayLayout.msg:
    3  # to inner most.
    4  
    5: MultiArrayDimension[] dim # Array of dimension properties
    6  uint32 data_offset        # padding bytes at front of data
    7  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/UInt16MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: uint16[]            data        # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/UInt32MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: uint32[]          data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/UInt64MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: uint64[]          data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/std_msgs/msg/UInt8MultiArray.msg:
    3  
    4  MultiArrayLayout  layout        # specification of data layout
    5: uint8[]           data          # array of data
    6  

ros2_ws/ros2_source/src/ros2/common_interfaces/trajectory_msgs/msg/JointTrajectory.msg:
    1  std_msgs/Header header
    2: string[] joint_names
    3: JointTrajectoryPoint[] points
    4  

ros2_ws/ros2_source/src/ros2/common_interfaces/trajectory_msgs/msg/JointTrajectoryPoint.msg:
    3  # All specified values are in the same order as the joint names in JointTrajectory.msg.
    4  
    5: float64[] positions
    6: float64[] velocities
    7: float64[] accelerations
    8: float64[] effort
    9  builtin_interfaces/Duration time_from_start
   10  

ros2_ws/ros2_source/src/ros2/common_interfaces/trajectory_msgs/msg/MultiDOFJointTrajectory.msg:
    7  # the joint names array.
    8  
    9: string[] joint_names
   10: MultiDOFJointTrajectoryPoint[] points
   11  

ros2_ws/ros2_source/src/ros2/common_interfaces/trajectory_msgs/msg/MultiDOFJointTrajectoryPoint.msg:
    1  # Each multi-dof joint can specify a transform (up to 6 DOF).
    2: geometry_msgs/Transform[] transforms
    3  
    4  # There can be a velocity specified for the origin of the joint.
    5: geometry_msgs/Twist[] velocities
    6  
    7  # There can be an acceleration specified for the origin of the joint.
    8: geometry_msgs/Twist[] accelerations
    9  
   10  builtin_interfaces/Duration time_from_start

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/ImageMarker.msg:
   32  
   33  # Coordinates in 2D in pixel coords. Used for LINE_STRIP, LINE_LIST, POINTS, etc.
   34: geometry_msgs/Point[] points
   35  # The color for each line, point, etc. in the points field.
   36: std_msgs/ColorRGBA[] outline_colors
   37  

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/InteractiveMarker.msg:
   21  
   22  # All menu and submenu entries associated with this marker.
   23: MenuEntry[] menu_entries
   24  
   25  # List of controls displayed for this marker.
   26: InteractiveMarkerControl[] controls
   27  

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/InteractiveMarkerControl.msg:
   63  # - If the header of a marker is empty, its pose will be interpreted as
   64  #   relative to the pose of the parent interactive marker.
   65: Marker[] markers
   66  
   67  

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/InteractiveMarkerInit.msg:
   12  
   13  # All markers.
   14: InteractiveMarker[] markers
   15  

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/InteractiveMarkerUpdate.msg:
   23  
   24  # Markers to be added or updated
   25: InteractiveMarker[] markers
   26  
   27  # Poses of markers that should be moved
   28: InteractiveMarkerPose[] poses
   29  
   30  # Names of markers to be erased
   31: string[] erases
   32  

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/Marker.msg:
   51  
   52  # Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, etc.)
   53: geometry_msgs/Point[] points
   54  # Only used if the type specified has some use for them (eg. POINTS, LINE_STRIP, etc.)
   55  # The number of colors provided must either be 0 or equal to the number of points provided.
   56  # NOTE: alpha is not yet used
   57: std_msgs/ColorRGBA[] colors
   58  
   59  # Only used for text markers

ros2_ws/ros2_source/src/ros2/common_interfaces/visualization_msgs/msg/MarkerArray.msg:
    1: Marker[] markers
    2  

kenny-y avatar Dec 12 '17 09:12 kenny-y

Can this requirement be more specific? I need a quantitative data for the "large size array". Is an image (1920*1080, 32bit palettes) big enough for this performance testing?

qiuzhong avatar Dec 19 '17 06:12 qiuzhong