@@ -96,19 +96,35 @@ func (h *httpHandlers) handleRender(w http.ResponseWriter, r *http.Request) {
9696 return
9797 }
9898
99+ startTime := time .Now ()
99100 update , err := h .processFrontendUpdate (& feUpdate )
101+ duration := time .Since (startTime )
102+
100103 if err != nil {
101104 http .Error (w , fmt .Sprintf ("render error: %v" , err ), http .StatusInternalServerError )
102105 return
103106 }
104107 if update == nil {
105108 w .WriteHeader (http .StatusOK )
109+ log .Printf ("render %4dms %4dk %s" , duration .Milliseconds (), 0 , feUpdate .Reason )
106110 return
107111 }
108112
109113 w .Header ().Set ("Content-Type" , "application/json" )
110- if err := json .NewEncoder (w ).Encode (update ); err != nil {
114+
115+ // Encode to bytes first to calculate size
116+ responseBytes , err := json .Marshal (update )
117+ if err != nil {
111118 log .Printf ("failed to encode response: %v" , err )
119+ http .Error (w , "failed to encode response" , http .StatusInternalServerError )
120+ return
121+ }
122+
123+ updateSizeKB := len (responseBytes ) / 1024
124+ log .Printf ("render %4dms %4dk %s" , duration .Milliseconds (), updateSizeKB , feUpdate .Reason )
125+
126+ if _ , err := w .Write (responseBytes ); err != nil {
127+ log .Printf ("failed to write response: %v" , err )
112128 }
113129}
114130
0 commit comments