Przeglądaj źródła

Optimize to_map for performance

terry-xiaoyu 6 lat temu
rodzic
commit
6ab9527603
1 zmienionych plików z 18 dodań i 2 usunięć
  1. 18 2
      src/emqx_message.erl

+ 18 - 2
src/emqx_message.erl

@@ -188,8 +188,24 @@ update_expiry(Msg) -> Msg.
 
 %% @doc Message to map
 -spec(to_map(emqx_types:message()) -> map()).
-to_map(Msg) ->
-    maps:from_list(to_list(Msg)).
+to_map(#message{
+          id = Id,
+          qos = QoS,
+          from = From,
+          flags = Flags,
+          headers = Headers,
+          topic = Topic,
+          payload = Payload,
+          timestamp = Timestamp
+        }) ->
+    #{id => Id,
+      qos => QoS,
+      from => From,
+      flags => Flags,
+      headers => Headers,
+      topic => Topic,
+      payload => Payload,
+      timestamp => Timestamp}.
 
 %% @doc Message to tuple list
 -spec(to_list(emqx_types:message()) -> map()).