结构体直接拷贝和用memcpy在效率上的区别??
声明一个很大的结构体,然后测试直接赋值(bitwise)和用memcpy的效率问题。
const size_t SIZE = 10000 * 10000struct big_struct{ char data[SIZE];};
int main(){ big_struct *pat = NULL, *struct_a = NULL, *struct_b = NULL; time_t time_a = 0, time_b = 0; //for bad_alloc try { pat = new big_struct(); struct_a = new big_struct(); struct_b = new big_struct(); } catch(std::exception& ec) { PRINT_LINE(ec.what()); return -1; } time_a = clock(); *struct_a = *pat; //bitwise time_a = clock() - time_a; time_b = clock(); memcpy(struct_b, pat, sizeof(pat)); //memcpy time_b = clock() - time_b; printf("time a: %d \n", time_a); printf("time b: %d \n", time_b); return 0;}