使用c或c ++来处理python程序中的计算密集型任务会更好,其中速度至关重要。这两者之间有很大的不同吗?哪个更干净?
答案 0 :(得分:1)
好吧,C ++应该是C的超集。所以你可以用C ++编写C程序并获得相同的速度。这实际上取决于你需要完成的任务。
如果你不需要任何C ++的功能(OOP,模板,异常等),那么C应该没问题。
当然,如果您已经习惯使用Python编写,并且需要更多功能,那么您应该看一下Cython。
答案 1 :(得分:0)
两者都被编译为本机代码,并且通常使用相同的编译器,因此可用的编译器优化相同。您为支持C ++语言结构而支付的性能差异应该可以忽略不计。选择您喜欢的那个/与Python更好地集成的那个/与您想要使用的其他本机库更好地集成的那个。
答案 2 :(得分:0)
使用C ++与C获得的运行时性能可以忽略不计。在将代码与Python程序(以及大多数其他语言)集成方面,使用C几乎总是更容易。事实上,如果你使用ctypes加载和运行代码(我推荐),你仍然需要在C ++库周围编写一个C接口。
答案 3 :(得分:0)
如果使用SWIG,则很容易生成C ++包装器。
CPython的交互都是使用CPython C API完成的,可以从C ++中完全访问(是的!)。在过去,当我完成一些SWIG编程时,我在“普通C”中执行实际代码,然后通过生成的SWIG类包装访问 - 这只是我找到的简单方法:)
就“表现”而言:
(我发现CPython扩展模块的最大优势之一是能够发布 GIL,从而能够拥有真正的线程代码 - 当然,CPython C API可以[一般]只有在获得GIL时才能安全访问。)
快乐的代码。