---
title: 内存一致性静态检查
description: "内存一致性静态检查就是检查源码迁移在鲲鹏平台运行时可能存在的内存一致性问题，并提供插入内存屏障的建议。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24/usermanual/DevKit_Affinity_0007.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24/usermanual/DevKit_Affinity_0007.html
indexId: ada6ff7c5750d7d5791effc9eb1777c3f9d5e4e09cbd50aaf1ab64c2fb255b1b78
---
# 内存一致性静态检查

内存一致性静态检查就是检查源码迁移在鲲鹏平台运行时可能存在的内存一致性问题，并提供插入内存屏障的建议。

- 由于运行内存一致性静态检查时，生成的中间文件较大，如果用户想要使用该功能，请确保安装工具的所在磁盘空间足够大。根据经验数据，每10万行代码需要100G左右的可用内存。
- 源码规模过大可能会导致占用资源过多，建议代码量不超过10万行。
- 内存一致性静态检查功能仅支持在鲲鹏平台上运行。


#### 前提条件

已成功登录鲲鹏DevKit。- “/opt”为工具默认安装目录，下文以此默认路径为例，请根据实际情况替换。
- 当前特性在Web界面中需要手动上传文件或压缩包；在插件工具中支持扫描本地工程，若源码为压缩包格式，请先解压然后选择解压后文件夹。


#### 操作步骤

1. 在页面左侧，“亲和分析”下拉选项中选择“内存一致性静态检查”，单击创建任务，如图1所示。
  图1 内存一致性静态检查

2. 选择“检查模式”。

  - 静态检查。
  - 编译器自动修复，需要用户根据页面提供的操作步骤进行操作，详细请参见    编译器自动修复工具使用指导
。
    静态检查的结果误报少、修复率最高为60%，编译器自动修复结果不会漏报，误报率比静态检查高，修复率可保证100%。误报越多，性能影响相对越大。不同软件下编译的修复率不同，性能影响也不同。

3. 填写“源码文件存放路径”。可以通过以下两种方式实现：

  - 选择“已上传的源码”：单击填写框选择下拉框中的源码路径即可，也可以手动填写源码路径。
  - 选择“上传的源码”：单击“上传”按钮上传压缩包（上传过程中自动解压）或文件夹。
    支持上传tar，tar.bz，tar.bz2，tar.gz，tar.xz，tbz，tbz2，tgz，txz，zip格式的压缩包，只允许同时上传一个压缩包。源码文件压缩包小于或等于1GB，解压后小于或等于剩余磁盘空间的一半。 只允许同时上传一个文件夹，文件夹小于或等于剩余磁盘空间的一半。

4. 填写“BC文件存放路径”。可以通过以下两种方式实现：

  - 选择“已上传的BC文件”：单击填写框选择下拉框中的BC文件路径即可，也可以手动填写BC文件路径。
  - 选择“上传BC文件”：单击“上传”按钮上传压缩包（上传过程中自动解压）或文件夹。
- 关于BC文件的含义及获取方式，请参见  生成BC文件
。
- 支持上传tar，tar.bz，tar.bz2，tar.gz，tar.xz，tbz，tbz2，tgz，txz，zip格式的压缩包，只允许同时上传一个压缩包。源码文件压缩包小于或等于1GB，解压后小于或等于剩余磁盘空间的一半。
- 只允许同时上传一个文件夹，文件夹小于或等于剩余磁盘空间的一半。


5. 选择是否生成编译器配置文件，默认为“否”。
6. 单击“开始检查”，开始内存一致性静态检查。检查完成后，自动跳转至检查报告界面，如图2所示。
  图2 内存一致性静态检查报告

  可单击对需要修改的源码文件按照路径或修改点数量进行排序。 可单击“下载报告 (.csv)”或“下载报告 (.html)”获取报告到本地进行查看。 如果选择了“生成编译器工具配置文件”，可单击“下载编译器配置文件”，下载编译器工具配置文件。也可将鼠标悬停在“历史报告”区域中对应报告的上，然后选择“下载编译器配置文件”。 如果下载编译器工具配置文件时系统提示“该编译器文件不是最新的”，单击“前往查看”到最新报告中下载。如果系统再提示“最新报告中没有编译器配置文件”，请按照提示操作。

7. 单击“查看建议源码”进入源码修改建议页面，如图3所示。
  图3 源码修改建议

  支持多个用户同时创建内存一致性静态检查任务。 用户可在任务进行过程中单击关闭，取消任务。 用户可以单击原始源代码模块右上角的上下键，进行上下切换。 用户如使用快捷键进行源码操作，需注意因输入法或IDE环境导致的快捷键被占用问题。 检查失败或检查结果为无需修改时，会产生空白报告。 若提示任务超时，请参见用户进行任务时提示任务超时进行处理。
