gpt4 book ai didi

Python:获取处理器的L1缓存

转载 作者:行者123 更新时间:2023-11-30 22:17:00 26 4
gpt4 key购买 nike

第一次在这里发帖,希望大家能解答我的问题。

我正在编写一个 Python 脚本,它使用埃拉托斯特尼筛法查找直到某个数字 n 的所有素数。为了使程序更高效,我想筛选适合 CPU 一级缓存的“段”中的数字范围。我知道我自己的 L1 缓存,它是 576 KB。但我希望这个程序可以在任何计算机上运行。

有什么办法可以获得CPU的L1缓存吗?我特别想要 L1 缓存,而不是 L2 或 L3。

最佳答案

Python 是一种“garbage collection ”语言。这样做的后果之一是内 stub 据需要自动分配和释放。这会产生内存碎片,从而破坏到 CPU 缓存的传输。也不可能直接在内存中更改数据结构的布局,这意味着总线上的一次传输可能不包含计算的所有相关信息 - 即使它可能全部适合总线宽度。它本质上损害了用相关数据填充 L1/L2 缓存以供下一次计算的任何前景。

另一个问题来自Python的动态类型并且没有被编译。许多C开发人员通常会在某些时候意识到编译器通常比他们更聪明。编译器可以执行许多技巧来影响事物的布局方式、CPU 将如何运行某些指令、以什么顺序以及优化它们的最佳方式。然而,Python 不是经过编译的,更糟糕​​的是,Python 具有动态类型,这意味着使用算法推断任何可能的优化机会会变得更加困难,因为代码功能可以在运行时更改。

正如评论中提到的,有一些方法可以缓解此类问题,最重要的是 Python 的 CPythonCython 扩展 - 它允许编译 Python 代码。

关于Python:获取处理器的L1缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49786441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com