【问题标题】:how to determine if a memory organization follows row major order or column major order?如何确定内存组织是否遵循行主要顺序或列主要顺序?
【发布时间】:2020-05-16 06:43:43
【问题描述】:

如何确定一个内存组织是遵循行优先顺序还是列优先顺序? 我学习了这个新概念并且知道如果我们知道什么内存组织遵循行优先顺序或列优先顺序,我们可以使我们的数组以这样一种方式运行,即通过减少代码的数量来提高性能页面错误。 但我无法找到“如何确定内存组织是否遵循行优先顺序或列优先顺序?”。

【问题讨论】:

    标签: performance memory page-fault row-major-order column-major-order


    【解决方案1】:

    这在某种程度上取决于您使用的语言...您没有说明。

    您可以通过创建一个 2 行 3 列数组并假设它将以行优先顺序存储,然后进行检查来进行测试。所以创建这个:

    0 1 2
    3 4 5
    

    现在查看内存中的字节数。如果他们走了:

    0 1 2 3 4 5
    

    它是按行优先的顺序。如果他们走了:

    0 3 1 4 2 5
    

    您的程序使用列优先顺序。

    通常,C 使用行优先排序,而 fortran 使用列优先排序。我说这取决于“在某种程度上”,因为例如使用 Python,您可以指定任一顺序,甚至可以在同一程序中根据具体情况混合它们。

    【讨论】:

    • 其实我不知道这取决于语言,所以我没有指定它。无论如何,我正在学习这个概念作为一种通用形式。非常感谢!它有帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-01-06
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多