多进程优化也是没有明显的优化效果 。
void Func6(){ register int i, j; register int i_, j_; register int i__, j__; int block = 8;int id = fork(); if(id == 0) {for(i = 1; i < HEIGHT / 2; i += block){for(j = 1; j < WIDTH - 1; j += block){i__ = minn(HEIGHT / 2, i + block);j__ = minn(WIDTH - 1, j + block);for(i_ = i; i_ < i__; i_ ++){for(j_ = j; j_ < j__; j_ ++){img[i_][j_] = (img[i_][j_ - 1] + img[i_][j_ + 1] + img[i_ - 1][j_] + img[i_ + 1][j_]) / 4;}}}}exit(0); } else {for(i = HEIGHT / 2; i < HEIGHT - 1; i += block){for(j = 1; j < WIDTH - 1; j += block){i__ = minn(HEIGHT - 1, i + block);j__ = minn(WIDTH - 1, j + block);for(i_ = i; i_ < i__; i_ ++){for(j_ = j; j_ < j__; j_ ++){img[i_][j_] = (img[i_][j_ - 1] + img[i_][j_ + 1] + img[i_ - 1][j_] + img[i_ + 1][j_]) / 4;}}}} }}
后记
- 当把除法改为移位:无明显优化 。
- 内联函数:无明显优化 。
- 多线程优化在96核的泰山服务器上运行反而性能拖慢了很多,查阅资料得知,这应该是Windows和Linux系统对线程不同的管理造成的,Linux和windows下多线程的区别,Linux下多线程反而造成Cache互相扰乱,从而极大拖慢了程序 。
- 关于并发优化未实现优化仍未搞明白 。
经验总结扩展阅读
- dp优化 | 各种dp优化方式例题精选
- 基于PL022 SPI 控制器 海思3516系列芯片SPI速率慢问题深入分析与优化
- 二 网络工程知识VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配置;VLANIF的小实验
- 京东云TiDB SQL优化的最佳实践
- Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
- NodeJS 服务 Docker 镜像极致优化指北
- 如何做谷歌SEO优化 淘宝谷歌搜索优化
- AVX图像算法优化系列二: 使用AVX2指令集加速查表算法。
- Apache Dolphin Scheduler 3.0.1 发布,对核心及UI相关进行优化
- 如何加强实验室质量管理