当前位置: 首页 > news >正文

网站的内容管理网站的构成元素

网站的内容管理,网站的构成元素,之江建设工程质量安全监督网站,2017年最新网站设计风格一个结构体数组#xff0c;有1亿个元素#xff0c;每个元素都要初始化为相同的值#xff0c;如果没有现成的语法直接支持这样的初始化操作#xff0c;就得用for循环写#xff0c;会不会非常耗时#xff1f; 如果结构体里的成员都是一些简单的基本数据类型#xff0c;整…一个结构体数组有1亿个元素每个元素都要初始化为相同的值如果没有现成的语法直接支持这样的初始化操作就得用for循环写会不会非常耗时 如果结构体里的成员都是一些简单的基本数据类型整个结构体才几十个字节即使有1亿个元素用for循环赋值程序执行时间也只要10^8纳秒级别0.1秒的样子。编译器优化高速缓存命中速度已经飞快了不用操心那么多。循环展开这些优化方法编译器优化都可能帮你做了手动优化代码可能基本没效果1e85即1亿零5个元素多出5个零头是为了回头测试多线程对不对 #include iostream using namespace std;struct Test {char a;int b;float c; };int main() {clock_t t1 clock();const int data_num 1e8 5;Test* array new Test[data_num];if (array NULL){cout memory alloc error endl;return -1;}array[0].a a;array[0].b 123;array[0].c 123.45;for (int i 1; i data_num; i){array[i] array[0];}cout array[data_num - 1].a endl;cout array[data_num - 1].b endl;cout array[data_num - 1].c endl;clock_t t2 clock();cout t2 - t1 毫秒 endl;return 0; } 下面使用多线程而且每个线程使用翻倍memcpy按1、2、4、8……翻倍进行copy #include thread #include iostream using namespace std;struct Test {char a;int b;float c; };const int data_num 1e8 5; const int thread_num 4;void memcpy_thread(Test* array, int tid) {int base_pos data_num / thread_num * tid;int cur_pos 1;while (cur_pos * 2 data_num / thread_num){memcpy_s(array base_pos cur_pos, sizeof(Test) * cur_pos, array base_pos, sizeof(Test) * cur_pos);cur_pos * 2;}memcpy_s(array base_pos cur_pos, sizeof(Test) * (data_num / thread_num - cur_pos), array base_pos, sizeof(Test) * (data_num / thread_num - cur_pos)); }int main() {clock_t t1 clock();Test* array new Test[data_num];if (array NULL){cout memory alloc error endl;return -1;}for (int i 0; i thread_num; i){int index data_num / thread_num * i;array[index].a a;array[index].b 123;array[index].c 123.45;}thread td[thread_num];for (int i 0; i thread_num; i){td[i] thread(memcpy_thread, array, i);}for (int i 0; i thread_num; i){td[i].join();}for (int i data_num / thread_num * thread_num; i data_num; i){array[i].a a;array[i].b 123;array[i].c 123.45;}cout array[data_num - 1].a endl;cout array[data_num - 1].b endl;cout array[data_num - 1].c endl;clock_t t2 clock();cout t2 - t1 毫秒 endl;return 0; } 1亿零5个元素多出5个零头是为了测试多线程对不对多线程翻倍memcpy用时大概70毫秒。之前直接用for循环用时大概150毫秒多线程和翻倍memcpy的加速效果似乎都不明显。多线程加速效果不明显3个线程以上基本没有加速效果了猜测是硬件资源的并行度有限这样说可能不准确可能是竞争之类的原因导致的或者是因为总线宽度有限
http://www.pierceye.com/news/259231/

相关文章:

  • 苏州模板建站平台自助快速建站
  • 域名查询网ip郑州百度网站优化
  • 泉州网站建设 乐本园东昌府网站制作
  • 电子产品配件采购网站阿里云 虚拟主机 wordpress
  • 网站的电子手册用什么做的百度云搜索引擎官网
  • 网站代码隐蔽代码jsp网站开发pdf
  • 厚街手机网站制作网站开发年终总结
  • 泉州网站建设技术外包网站建设的具体奖罚措施
  • 汕头企业网站推广技巧南宁关键词网站排名
  • 做我的世界背景图的网站阿里云服务器做网站外网访问慢
  • 云南百度智能建站登录wordpress数据库吗
  • 万网买好域名后如何开通网站网站历史记录怎么恢复
  • 游戏租号网站开发网页设计的技术有哪些
  • 工信部网站备案文件合肥网站制作建设
  • 网站架设标准网站域名注册费用
  • 东莞网站制作功能十堰微网站建设价格
  • google关键词分析工具网站建设seo 视频教程
  • 泸州市规划建设局网站网站建设及维护包括范围
  • 网站设计培训成都哪个网站开发软件
  • 四川炜航建筑公司网站新郑网络推广外包
  • 网站建设名头网站项目建设方案
  • 可以用asp做哪些网站简历模板大学生免费
  • 公司 宜宾网站建设头条小程序
  • 大连h5建站学院网站建设申请报告
  • 大蒜做营销型网站贵州最好的网站建设推广公司
  • 单仁资讯做网站怎样备案网站应用服务
  • 如何生成一个网站怎么查看一个网站有没有做推广
  • 温州网站设计案例wdcp创建多个网站
  • 做个公司网站专业做网站app的公司
  • 动漫网站源码下载莱芜金点子最新招工信息