zoukankan      html  css  js  c++  java
  • 多线程频繁写全局变量导致性能降低

    多线程频繁写全局变量导致性能降低

    l 问题:

    在测试多线程程序性能时,发现多线程比单线程运行时周期长。经实验发现,是由于多线程频繁对全局变量或者静态变量的写操作时,导致的性能降低。

    l 测试环境:

    系统:

    CPUIntel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz

    MEM4*8G

    系统:CentOS Linux release 7.2.1511 (Core) 64bit

    l 测试代码:

    全局变量:int g_num[THREAD_NUM];

    线程处理函数:

    1.绑定cpu

    2.while循环执行

    第一次计时

    Run () // g_num[thread_id]++;

    执行到第n次计时,并打印当前线程处理平均处理周期

    结果:单线程处理时,完成n次时间比多线程处理周期短,速度快。更改代码,只对g_num读而不写时,单线程和多线程处理周期相同。

    l 分析

    多个cpu在写一块内存会产生总线竞争,操作堆栈区的变量不会。

  • 相关阅读:
    第二周作业
    十二周
    十一周
    第十周
    第九周
    第八周
    第七周
    第六周
    实验报告三
    第四周课程总结&试验报告(二)
  • 原文地址:https://www.cnblogs.com/yaoyuanfeixing/p/7209779.html
Copyright © 2011-2022 走看看