专栏首页C++核心准则原文翻译C++核心准则Per.19:以可以预测的方式访问内存

C++核心准则Per.19:以可以预测的方式访问内存

Per.19: Access memory predictably

Per.19:以可以预测的方式访问内存

Reason(原因)

Performance is very sensitive to cache performance and cache algorithms favor simple (usually linear) access to adjacent data.

程序的性能和缓冲的性能直接相关,而缓冲算法更善于处理简单的(通常是线性的)访问连续数据。

Example(示例)

int matrix[rows][cols];

// bad
for (int c = 0; c < cols; ++c)
    for (int r = 0; r < rows; ++r)
        sum += matrix[r][c];

// good
for (int r = 0; r < rows; ++r)
    for (int c = 0; c < cols; ++c)
        sum += matrix[r][c];

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#per19-access-memory-predictably

本文分享自微信公众号 - 面向对象思考(OOThinkingDalian),作者:面向对象思考

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++核心准则ES.42: 使用指针时要简单且直接

    Complicated pointer manipulation is a major source of errors.

    面向对象思考
  • C++核心准则ES.73:如果没有明显的循环变量,while语句要好于for语句

    The "event loop" is misleading because the events counter has nothing to do with...

    面向对象思考
  • C++核心准则ES.10:每次只定义一个名称

    One declaration per line increases readability and avoids mistakes related to th...

    面向对象思考
  • [剑指offer] 矩阵中的路径

    请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个...

    尾尾部落
  • HDU 6628 (2019杭电第五场 1005) permutation 1 (全排列)

    题意:求 n的 全排列 差值序列(后一项减前一项 n-1项) 第 k 小的全排列,2 <=n<=20, 1<= k <=min(10000,n!)

    用户2965768
  • P1939 【模板】矩阵加速(数列)

    题目描述 求a数列的第n项对 取余的值。 输入输出格式 输入格式: 第一行一个整数T,表示询问个数。 以下T行,每行一个正整数...

    attack
  • 【CodeForces 266C】Below the Diagonal(模拟)

    饶文津
  • BZOJ4259: 残缺的字符串(FFT 字符串匹配)

    考虑把B翻转过来,如果\(\sum_{k = 0}^M (B_{i - k} - A_k)^2 * B_{i-k}*A_k = 0\)

    attack
  • Leetcode 73 Set Matrix Zeroes

    Given a m x n matrix, if an element is 0, set its entire row and column to 0. D...

    triplebee
  • 排序算法及分析(插入、希尔、选择、冒泡)

    假如我们要从小到大排序,下面几种简单的算法可以处理规模不大的数据,我写成函数形式。

    饶文津

扫码关注云+社区

领取腾讯云代金券