zoukankan      html  css  js  c++  java
  • Cache lockdown

    Cache lockdown is almost never a good thing for performance for general purpose application code. Caches are nearly always smaller than the total overall code/data set on a platform. If you lock down 25% of the cache to accelerate one application, you effectively make the cache 25% smaller for everything else. You may make one application faster (possibly, if it happens to have a small data set, although even this is questionable for most applications which are bigger than the L2 size),  but at the expense of making everything else running on the platform slower. For this reason cache lockdown is nearly always "the wrong thing", even if it were available. For most software development there is unfortuantely no quick fix to making software run faster; you just need to profile and optimize your application hotspots to use better algorithms, cleaner code, less memory, etc.

    The only real use case for cache lockdown is for critical sections of hard-realtime systems where guaranteed performance of small code sections (interrupt handlers and the like) is required, and the overall loss of cache (and drop in peformance for everything else) is viewed as an acceptable sacrifice to achieve that predictable response time. It is also worth noting that in many markets needing realtime response TCM is generally available as a synthesis option in the Cortex-R family, so even in those markets there are better alternatives to cache lockdown which provide better area efficiency.

    In summary - cache lockdown generally makes your platform slower (due to smaller average cache size remaining after lockdown), but buys predictable performance time for critical realtime sections. It is not, and never has been, an optimization techique to make application code run faster.

  • 相关阅读:
    微积分
    Docker实战
    使用 Docker 建立 Mysql 集群
    Adaptive Query Optimization in Oracle Database 12c (12.1 and 12.2)
    open()在Linux内核的实现(5)-符号链接目录项的处理
    Red Hat Enterprise Linux上配置SQL Server Always On Availability Group
    Linux进程(作业)的查看和杀死 牛
    为Go语言GC正名-20秒到100微妙的演变史
    汇编语言---GCC内联汇编
    ActiveReports 报表应用教程 (15)---报表换肤
  • 原文地址:https://www.cnblogs.com/hilnx/p/15031936.html
Copyright © 2011-2022 走看看