当前位置:  编程技术>c/c++/嵌入式

基于C++执行内存memcpy效率测试的分析

    来源: 互联网  发布时间:2014-10-13

    本文导语:  在进行memcpy操作时,虽然是内存操作,但是仍然是耗一点点CPU的,今天测试了一下单线程中执行memcpy的效率,这个结果对于配置TCP epoll中的work thread 数量有指导意义。如下基于8K的内存快执行memcpy, 1个线程大约1S能够拷贝500M,...

在进行memcpy操作时,虽然是内存操作,但是仍然是耗一点点CPU的,今天测试了一下单线程中执行memcpy的效率,这个结果对于配置TCP epoll中的work thread

数量有指导意义。如下基于8K的内存快执行memcpy, 1个线程大约1S能够拷贝500M,如果服务器带宽或网卡到上限是1G,那么网络io的work thread 开2个即可,考虑到消息的解析损耗,3个线程足以抗住硬件的最高负载。

在我到测试机器上到测试结果是:

Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz

do memcpy speed:12.27 ms/MB
each thread can do memcpy 667.645 MB

代码如下:

#include
 #include
 #include

 using namespace std;

 int main(int argc, char* argv[])
 {
         long len = 8192;
         int  loop = 200;
         char* p = new char[len];
         char* q = p;
         struct timeval start, end;
         gettimeofday(&start, NULL);
         for (int i =0; i < loop; ++i)
         {
                 char* p = new char[len];
                 *p = char(i);
                 memcpy(p, q, len);
                 delete [] p;
         }
         gettimeofday(&end, NULL);
         cout

    
 
 

您可能感兴趣的文章:

  • Unix环境下如何执行c++程序
  • C++中,为什么执行pthread_mutex_lock()时执行了两次线程才被阻塞?
  • C++ 代码执行工具 hbcxx
  • 最简单的C++程序在linux下执行问题?
  • Ubuntu下编译(c++)的程序,在redhat 9.0的root用户下执行报权限不够的错误
  • linux中使用codeblocks编译C++程序debug可以执行和Release调用出错
  • 在redhat9.0的终端上,执行用gcc编译的c++程序,没有任何输出,这是怎么回事?
  • 同一段C++在Linux和windows下编译后的可执行文件有什么不同?
  • 请问各位,java是跨平台的,但如果c++改一下编译器,也编译成字节码让虚拟机执行,是不是也跨平台了?
  • C++函数返回值为对象时,构造析构函数的执行细节
  • 深入分析C++中执行多个exe文件方法的批处理代码介绍
  • 我想要一个把Java编出来的代码,编译成像C++一样的可执行本机代码。推荐一个工具。谢谢!
  • 用kdevelop编译完,总执行不了c++程序,不知何原因??
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • ArrayList和Vector谁的执行效率高
  • PHP代码执行效率评测 Ubench
  • ?100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)(散分)
  • 100分求jsp树的原代码 最好是jsp+js+xml 执行效率要高。(从数据库中动态生成的)在线
  • 请教进程fork()相关的,执行效率的问题,看我这段程序.
  • 求jsp树的原代码,一定要是jsp+js+xml 执行效率要高。(从数据库中动态生成的)
  • Oracle提高sql执行效率的心得建议
  • 根据mysql慢日志监控SQL语句执行效率
  • Oracle提高SQL执行效率的3种方法
  • 查询mysql中执行效率低的sql语句的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • 我执行top命令,显示出来所有进程占内存都不超过1%,可是512M内存只剩30多M,为什么?
  • 可执行文件的内存占用空间 = 查看???
  • CI框架在CLI下执行占用内存过大问题的解决方法
  • 请问return语句会执行哪些操作?在函数中return一个已分配内存的指针,该指针所占用的内存会释放吗?
  • 每隔一段时间在Linux系统下执行 wget 命令请求服务器网页,会使内存增加吗?
  • 设置oralce自动内存管理执行步骤
  • 如何在一个程序中把另一个可执行文件调入内存并执行(不使用 exec系统调用)
  • linux使用管道命令执行ps获取cpu与内存占用率
  • 请高手相助: mmap 使用问题,程序执行完后吃掉 100M 内存 !
  • 优化SQL Server的内存占用之执行缓存
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • 怎么在一个程序的执行过程中中止执行它?比如一个按钮的响应程序中,执行一半中止??20分!!!
  • linux下通过crond实现自动执行程序
  • 我用GCC生成的可执行文件无法直接在shell命令行下执行,这是为什么?可以用调试器调入执行。我用Red Hat7.0
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 请问:我发现如果在/usr/local/bin 与/usr/bin下都有同一个执行文件时,当在shell下执行时,只会执行/usr/local/bin,下的,怎么改过来?
  • linux下不使用sudo命令执行docker的操作步骤
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • Mysql Select查询执行流程介绍及实例
  • 我在UNIX下用PRO*C写了个程序,每次执行都得一个多小时,我想把它放到后台执行,也就是我想交给服务器执行,而我想产掉终端窗口,应该怎么做呢
  • 怎样执行可执行文件?
  • redhat7.1下可执行文件不能执行????
  • C中用system系统调用执行command,执行过程中死锁,如何处理?
  • 在B shell里怎麽执行曾经执行过的命令
  • 请问JSP中的<jsp:forward page=""/>执行后,后边的操作还会执行吗?
  • 执行当前目录下可执行程序时前面必须要加上./才可以,如何解决?
  • 如何在LINUX中在系统启动后自动执行一个执行一个程序?
  • linux在脚本执行命令和直接在命令行执行命令有什么区别




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    操作系统 iis7站长之家