博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程频繁写全局变量导致性能降低
阅读量:5045 次
发布时间:2019-06-12

本文共 490 字,大约阅读时间需要 1 分钟。

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

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

你可能感兴趣的文章
多变量微积分笔记24——空间线积分
查看>>
Magento CE使用Redis的配置过程
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Mac 下的Chrome 按什么快捷键调出页面调试工具
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>
JS截取字符串常用方法
查看>>
Google非官方的Text To Speech和Speech Recognition的API
查看>>
stdext - A C++ STL Extensions Libary
查看>>
Django 内建 中间件组件
查看>>
bootstrap-Table服务端分页,获取到的数据怎么再页面的表格里显示
查看>>
进程间通信系列 之 socket套接字及其实例
查看>>
天气预报插件
查看>>
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
mysql忘记root密码
查看>>
apache服务器中设置目录不可访问
查看>>
嵌入式Linux驱动学习之路(十)字符设备驱动-my_led
查看>>
【NOIP模拟】密码
查看>>
java容器---------手工实现Linkedlist 链表
查看>>