udpsrc: optimize GstUdpSrc object for cache performance
authorPetr Kulhavy <brain@jikos.cz>
Tue, 15 Nov 2016 08:39:31 +0000 (09:39 +0100)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 21 Mar 2018 21:47:26 +0000 (17:47 -0400)
Optimize GstUdpSrc for cache performance.

Move the hot properties, which are used by the read function, to the top:
@used_socket, @addr, @cancellable, @skip_first_bytes, @timeout,
@retrieve_sender_address.

Remove the unused property @ttl.

Where needed reorder so that holes are avoided (the 64-bit @timeout)

https://bugzilla.gnome.org/show_bug.cgi?id=772841

gst/udp/gstudpsrc.h

index 96f844b..6c51256 100644 (file)
@@ -47,32 +47,32 @@ typedef struct _GstUDPSrcClass GstUDPSrcClass;
 struct _GstUDPSrc {
   GstPushSrc parent;
 
+  /* our sockets */
+  GSocket   *used_socket;      /* hot */
+  GInetSocketAddress *addr;    /* hot */
+
+  GCancellable *cancellable;   /* hot */
+
   /* properties */
+  gint       skip_first_bytes; /* hot */
+  guint64    timeout;  /* hot */
+  gboolean   retrieve_sender_address;  /* hot */
   gchar     *address;
   gint       port;
   gchar     *multi_iface;
-  gint       ttl;
   GstCaps   *caps;
   gint       buffer_size;
-  guint64    timeout;
-  gint       skip_first_bytes;
   GSocket   *socket;
   gboolean   close_socket;
   gboolean   auto_multicast;
   gboolean   reuse;
   gboolean   loop;
-  gboolean   retrieve_sender_address;
 
   /* stats */
   guint      max_size;
 
-  /* our sockets */
-  GSocket   *used_socket;
-  GInetSocketAddress *addr;
   gboolean   external_socket;
-
   gboolean   made_cancel_fd;
-  GCancellable *cancellable;
 
   /* memory management */
   GstAllocator *allocator;