瀏覽代碼

Avoid using bzero for the entire stun_buffer_list_elem and only init metadata

On high traffic servers bzero -> memset takes a significant amount of time because each stun_buffer_list_elem can be ~64kb
Haseeb Abdul Qadir 4 年之前
父節點
當前提交
93c5387180
共有 1 個文件被更改,包括 6 次插入6 次删除
  1. 6 6
      src/apps/relay/ns_ioalib_engine_impl.c

+ 6 - 6
src/apps/relay/ns_ioalib_engine_impl.c

@@ -297,15 +297,15 @@ static stun_buffer_list_elem *new_blist_elem(ioa_engine_handle e)
 
 	if(!ret) {
 	  ret = (stun_buffer_list_elem *)malloc(sizeof(stun_buffer_list_elem));
-	  if (ret) {
-		ret->next = NULL;
-	  } else {
-		TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Cannot allocate memory for STUN buffer!\n", __FUNCTION__);
-	  }
 	}
 
 	if(ret) {
-	  bzero(&ret->buf, sizeof(stun_buffer));
+	  ret->buf.len = 0;
+	  ret->buf.offset = 0;
+	  ret->buf.coffset = 0;
+	  ret->next = NULL;
+	} else {
+	  TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "%s: Cannot allocate memory for STUN buffer!\n", __FUNCTION__);
 	}
 
 	return ret;