对于要高效缓存的程序,所使用的数据应该线性存储吗?高效的缓存和BLOB的 - 分析缓存命中/未命中
因此,我不使用动态分配,而是使用线性分配器将数据放入Blob中。这足以提高性能吗?我应该怎么做才能提高缓存效率?
我知道这个问题的arent具体,但我不知道该怎么解释呢?
哪些程序可以帮我配置文件缓存命中/未命中?
对于要高效缓存的程序,所使用的数据应该线性存储吗?高效的缓存和BLOB的 - 分析缓存命中/未命中
因此,我不使用动态分配,而是使用线性分配器将数据放入Blob中。这足以提高性能吗?我应该怎么做才能提高缓存效率?
我知道这个问题的arent具体,但我不知道该怎么解释呢?
哪些程序可以帮我配置文件缓存命中/未命中?
如果您寻找一个Windows的探查,你可以尝试AMD's CodeAnalyst或VerySleepy,两者的这些都是免费的,然而AMD是这两者中功能更强大的(并且在intel硬件上工作,但是iirc不能使用基于硬件的配置文件),它包括监视分支预测未命中和缓存利用率。剖析是伟大的,因为它告诉你该怎么优化,但你总是不知道如何,对于这一点,你应该看看Agner Fog's optimization manuals与Intel's optimization manual(其中包含了很多地方和缓冲能力优化)
在Linux上,您可以使用perf mem
来以非常细粒度的方式(包括未命中地址)对内存访问进行采样,例如described here。
对于性能改进,足够/有用/所需的东西应该由性能分析决定,而不是纯粹的猜测。如果有一个普遍适用的配方,它将已经在运行时库中实现。 – Vlad
刚刚添加了另一个问题......你知道任何探测器检测缓存命中/未命中,所以我可以看到,如果我做的任何更改都提高性能? –