一段代码在Conda环境下运行速度快很多,为什么?

问题描述 投票:0回答:1

我在基本的 venv (python 3.9) 中运行这部分代码:

if collection.count() == 0:
    collection.add(
    documents=documents, 
    metadatas=metadatas,
    ids=ids
)

执行大约需要11分钟。由于一些原因,我们需要将其部署在Conda环境(python 3.10)上,并且同一台机器上的相同代码只需要4分钟即可执行。这有什么具体原因吗?我使用的软件包是 chromaDB,这部分代码正在创建一个矢量数据库。

机器: Mac Pro M1专业版 32GB

我查看了版本差异,我知道更快的内存管理等,但这感觉不像是速度增加的完整解释。

python conda chromadb vector-database ollama
1个回答
0
投票

一般来说,Python 3.9 和 3.10 有重大区别,因为 Python 3.10 使用

Just-In-Time (JIT)
编译器在运行时将 Python 字节码加速为机器代码。此外,Conda 环境有自己的优化,特别是在依赖管理方面,这对加速有很大影响。

但是找到不同根源的主要方法应该是使用分析器工具。这可以是一个例子:

import cProfile
profiler = cProfile.Profile()
profiler.enable()

if collection.count() == 0:
    collection.add(
    documents=documents, 
    metadatas=metadatas,
    ids=ids
)

profiler.disable()
profiler.print_stats()
© www.soinside.com 2019 - 2024. All rights reserved.