add file tests/test_memcpy.c
parent
5283a55bda
commit
c9083ae0cf
|
|
@ -61,6 +61,7 @@ src/tests/test_normalize_path
|
|||
src/tests/test_sorted_array
|
||||
src/tests/test_sorted_queue
|
||||
src/tests/test_thread_local
|
||||
src/tests/test_memcpy
|
||||
|
||||
# other
|
||||
*.swp
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ int conn_pool_async_connect_server_ex(ConnectionInfo *conn,
|
|||
return result;
|
||||
}
|
||||
|
||||
static inline void conn_pool_get_key(const ConnectionInfo *conn,
|
||||
static inline void conn_pool_get_key(const ConnectionInfo *conn,
|
||||
char *key, int *key_len)
|
||||
{
|
||||
*key_len = sprintf(key, "%s-%u", conn->ip_addr, conn->port);
|
||||
|
|
@ -710,7 +710,7 @@ int conn_pool_parse_server_info(const char *pServerStr,
|
|||
if (getIpaddrByNameEx(parts[0], pServerInfo->ip_addr,
|
||||
sizeof(pServerInfo->ip_addr),
|
||||
&pServerInfo->af) == INADDR_NONE)
|
||||
{
|
||||
{
|
||||
logError("file: "__FILE__", line: %d, "
|
||||
"host: %s, invalid hostname: %s!",
|
||||
__LINE__, pServerStr, parts[0]);
|
||||
|
|
|
|||
|
|
@ -11,9 +11,13 @@ ALL_PRGS = test_allocator test_skiplist test_multi_skiplist test_mblock test_blo
|
|||
test_server_id_func test_pipe test_atomic test_file_write_hole test_file_lock \
|
||||
test_pthread_wait test_thread_pool test_data_visible test_mutex_lock_perf \
|
||||
test_queue_perf test_normalize_path test_sorted_array test_sorted_queue \
|
||||
test_thread_local
|
||||
test_thread_local test_memcpy
|
||||
|
||||
all: $(ALL_PRGS)
|
||||
|
||||
test_memcpy: test_memcpy.c
|
||||
$(CC) -g -Wall -o $@ $< $(LIB_PATH) $(INC_PATH)
|
||||
|
||||
.c:
|
||||
$(COMPILE) -o $@ $< $(LIB_PATH) $(INC_PATH)
|
||||
.c.o:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* Copyright (c) 2020 YuQing <384681@qq.com>
|
||||
*
|
||||
* This program is free software: you can use, redistribute, and/or modify
|
||||
* it under the terms of the Lesser GNU General Public License, version 3
|
||||
* or later ("LGPL"), as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* You should have received a copy of the Lesser GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "fastcommon/shared_func.h"
|
||||
|
||||
#define BUFF_SIZE (4 * 1024 * 1024)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char *buff1;
|
||||
char *buff2;
|
||||
char *dest;
|
||||
int64_t start_time, end_time;
|
||||
char time_buff[32];
|
||||
int i;
|
||||
|
||||
buff1 = malloc(BUFF_SIZE);
|
||||
buff2 = malloc(BUFF_SIZE);
|
||||
dest = malloc(BUFF_SIZE);
|
||||
|
||||
memset(buff1, 'a', BUFF_SIZE);
|
||||
memset(buff2, 'b', BUFF_SIZE);
|
||||
memset(dest, 0, BUFF_SIZE);
|
||||
|
||||
start_time = get_current_time_us();
|
||||
for (i=0; i<16 * 1024; i++) {
|
||||
if (i % 2 == 0) {
|
||||
memcpy(buff2, buff1, BUFF_SIZE);
|
||||
} else {
|
||||
memcpy(dest, buff2, BUFF_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
end_time = get_current_time_us();
|
||||
printf("time used: %s us\n", long_to_comma_str(
|
||||
end_time - start_time, time_buff));
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue