比较memcpy与指针操作和索引操作复制时的效率
2017-09-16 00:00
281 查看
摘要: 比较memcpy与指针操作和索引操作的效率
#include <iostream> #include <time.h> // For clock() #include <stddef.h> // For size_t #include <string.h> // For memcpy() void copy_with_pointers(char const *src, char *dst, size_t n) { for (size_t k = 0; k!=n; ++k) *dst++ = *src++; } void copy_with_indices(char const *src, char *dst, size_t n) { for (size_t k = 0; k!=n; ++k) dst[k] = src[k]; } int main() { int const n_bytes = 100000; int const n_calls = 100; char *src = new char[n_bytes]; char *dst = new char[n_bytes]; // 产生内容 memcpy(dst, src, n_bytes); clock_t start, end, reftime; // Test 1 (reference time) start = clock(); for (int k = 0; k!=n_calls; ++k) memcpy(dst, src, n_bytes); end = clock(); reftime = end-start; cout << "With memccpy: " << static_cast<double>(reftime) << "memcpy time.\n"; // Test 2 (pointers) start = clock(); for (int k = 0; k!=n_calls; ++k) copy_with_pointers(src, dst, n_bytes); end = clock(); cout << "With pointers: " << static_cast<double>(end-start) << " times slower than memcpy.\n"; // Test 3 (indices) start = clock(); for (int k = 0; k!=n_calls; ++k) copy_with_indices(src, dst, n_bytes); end = clock(); cout << "With indices: " << static_cast<double>(end-start) << " times slower than memcpy.\n"; delete[] src; delete[] dst; return 0; }
相关文章推荐
- C/C++文件操作效率比较——FILE/fstream
- 四种字节流复制文件的效率比较
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 指针的加减操作和比较
- Java的内存复制(主要是数组)效率比较
- Java中数组复制的效率比较
- C++对象等于和memcpy的效率比较
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 数组的下标访问和指针访问方式效率分析比较
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、
- linux中的strcpy 与 memcpy效率比较
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- mongo联合索引和单独索引的查询效率比较